在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类型,添加一个字段,在数据库则会相应的增加一个字段
当减少一个字段时,并不会减少相应字段
喜欢 (1)or分享 (0)