在MySQL中创建数据库
mysql -uroot -p123456
create database 02blog default character set utf8;
数据库驱动注册等信息
项目的路径是:/home/lee/Applications/Go/src/blog/02blog/
在models下,建立db.go文件
package models import( "blog/02blog/models/class" // 注册模型,需要引入该包 "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" ) /* 使用orm连接数据库步骤: //告诉orm使用哪一种数据库 1.注册数据库驱动RegisterDriver(driverName, DriverType) 2.注册数据库RegisterDataBase(aliasName, driverName, dataSource, params ...) 3.注册对象模型RegisterModel(models ...) 4.开启同步RunSyncdb(name string, force bool, verbose bool) */ // 在init函数中连接数据库,当导入该包的时候便执行此函数 func init(){ orm.RegisterDriver("mysql", orm.DRMySQL) orm.RegisterDataBase("default", "mysql", "root:123456@tcp(localhost:3306)/02blog?charset=utf8") orm.RegisterModel(new(class.User)) // 注册模型,建立User类型对象,注册模型时,需要引入包 orm.RunSyncdb("default", false, true) }
使用ORM实现基本的增删查改操作
在models文件夹新建文件夹class,在class文件夹下新建user.go文件
package class import( "fmt" "github.com/astaxie/beego/orm" ) // 完成User类型定义 type User struct{ Id int `orm:"pk"` // 设置为主键,字段Id, Password首字母必须大写 Password string } func TestORM(){ o:=orm.NewOrm() u:=User{1, "abc"} o.Insert(&u) // 插入数据库 u1:=User{Id:1} o.Read(&u1) // 读取 fmt.Println(u1) // 输出 u1.Password = "xyz" // 修改 o.Update(&u1) // 更新 u2:=User{Id:1} o.Read(&u2) fmt.Println(u2) // o.Delete(&u2) // o.Read(&2) }
更改项目main.go文件
package main import ( _ "blog/02blog/models" // 导入models包,执行其中init函数,短横线表示只执行init,不可引用其他函数 _ "blog/02blog/routers" "blog/02blog/models/class" // 导入models的class包,执行其中的class.TestORM()函数 "github.com/astaxie/beego" ) func main() { class.TestORM() // 执行class.TestORM()函数 beego.Run() }
orm自动修改表结构
完成上面操作之后,便可以对数据库进行简单增删改查的操作
orm提供了自动修改表结构的功能。
在user.go文件中User类型,添加一个字段,在数据库则会相应的增加一个字段
当减少一个字段时,并不会减少相应字段