很有用,来看下:
- 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
不多说。