Iris_xorm

xorm安装

 go get github.com/go-xorm/xorm

mysql连接示例

本节内容中,我们将以连接mysql为案例,演示xorm的相关操作。

  • 创建引擎

 engine, err := xorm.NewEngine(driverName, dataSourceName)

如上通过xorm.NewEngine方法创建一个数据库操作引擎,该方法需要两个参数:driveName和dataSourceName。在mysql引擎连接中,两个参数如下:

 driverName := "mysql"
 dataSrouceName := "用户名:密码@/数据库名称?charset=utf8"

另外,需要格外注意一点,需要在使用数据库引擎创建的地方导入对应的数据库引擎驱动,比如本节内容中的mysql数据库,引擎导入语句如下:

 _ "github.com/go-sql-driver/mysql"

mysql连接配置

  • 设置自动同步结构体到数据库 xorm框架的engine数据库引擎,提供了engine.Sync()方法,允许开发者将自定义的结构体同步到数据库中。 随着xorm框架不断更新和迭代,在Sync方法的基础上,又提供了Sync2方法,用于将结构体同步更新到数据库中。Sync2方法主要的特性是:

    • 自动检测和创建表

    • 自动检测和新增表中的字段名

    • 自动检测创建和删除索引

    • 自动转换varchar字段类型到text字段类型

    • 自动警告字段的默认值

    err = engine.Sync2(new(model.Permission), new(model.City), new(model.Admin), new(model.AdminPermission), new(model.User))

    如上是Sync2方法的使用方法

  • 其他设置

    • 是否显示SQL语句(开发调试时使用)

       engine.ShowSQL(true)
    • 设置数据库最大连接数

       engine.SetMaxOpenConns(10)
    • 设置最大空闲连接数量:默认是2

       engine.SetMaxIdleConns(5)

代码:

package main

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql" //不能忘记导入
	"github.com/go-xorm/xorm"
	"github.com/go-xorm/core"
)

func main() {

	//1. 创建数据库引擎对象
	engine, err := xorm.NewEngine("mysql", "root:yu271400@/elmcms?charset=utf8") //elmcms数据库名称
	if err != nil {
		panic(err.Error())
	}

	//2. 数据库引擎关闭
	defer engine.Close()

	//数据库引擎设置
	engine.ShowSQL(true)                     //设置显示SQL语句
	engine.Logger().SetLevel(core.LOG_DEBUG) //设置日志级别
	engine.SetMaxOpenConns(10)               //设置最大连接数
	//engine.SetMaxIdleConns(2) //设置最大空闲连接数
	engine.Sync(new(Person)) //同步到数据库

	//查询表的所有数据
	session := engine.Table("user")
	count, err := session.Count()
	if err != nil {
		panic(err.Error())
	}
	fmt.Println(count)

	//使用原生sql语句进行查询
	result, err := engine.Query("select  * from user")
	if err != nil {
		panic(err.Error())
	}
	for key, value := range result {
		fmt.Println(key, value)
	}
}

type Person struct {
	Age  int
	Name string
}

func OrmMapping() {

}

  

猜你喜欢

转载自www.cnblogs.com/yzg-14/p/12274076.html