当前位置:主页 > 脚本语言 > Golang >

使用go xorm来操作mysql的方法实例

时间:2021-07-07 08:50:49 | 栏目:Golang | 点击:

在golang中要实现对数据库的操作, 一个比较好用的方式就是使用XORM,xorm是一个简单而强大的Go语言ORM库,通过它可以使数据库操作非常简便。 在xorm里面,可以同时存在多个ORM引擎,一个ORM引擎称为Engine,一个Engine一般只对应一个数据库。

golang的连接池配置

这里初始化一个全局的xorm.Engine对象, xorm.Engine通过调用xorm.NewEngine生成在很多其他的API都需要传入该对象作为参数。 这里需要理解这里设定的3个参数的意义:

SetMaxIdleConns()

SetMaxOpenConns()

SetConnMaxLifetime

go xorm来操作mysql

很有用,来看下:

package main
import (
  "fmt"
  "github.com/go-xorm/xorm"
  "github.com/go-xorm/core"
  _ "github.com/go-sql-driver/mysql"
)
// 对应数据库的tablename必须为student
// 执行mysql时,对应的字段为xxx,yyy,zzz; 也可以省掉,默认的mysql字段为id,username,address
type Student struct {
  Id    int    `xorm:"INT(11) 'xxx'"`
  Username string  `xorm:"VARCHAR(64) 'yyy'"`
  Address string  `xorm:"VARCHAR(256) 'zzz'"`
}
func main() {
  engine, err := xorm.NewEngine("mysql", "root@/taoge?charset=utf8") // dbname是taoge
  if err != nil{
    fmt.Println(err)
    return
  }
  // 如下Ping可以不要
  // if err := engine.Ping(); err != nil{
  //   fmt.Println(err)
  //   return
  // }
  //engine.ShowSQL(true) // 显示SQL的执行, 便于调试分析
  engine.SetTableMapper(core.SnakeMapper{})
  st1 := new(Student)
  st1.Username = "taoge"
  st1.Address = "China"
  affected, err := engine.Insert(st1)
  fmt.Println(affected)
  st2 := new(Student)
  result,err := engine.Where("xxx=?", 1).Get(st2)
  fmt.Println(result)
  fmt.Println(st2.Username)
  fmt.Println(st2.Address)
}

创建数据库:

CREATE TABLE `student` (
 `xxx` int(11) NOT NULL AUTO_INCREMENT,
 `yyy` varchar(64) NOT NULL,
 `zzz` varchar(256) NOT NULL ,
 PRIMARY KEY (`xxx`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

运行结果:

1
true
taoge
China

总结

您可能感兴趣的文章:

相关文章