beego框架之orm模块——PostgreSQL
beego框架默认支持三种数据库类型(MySQL,Sqlite,PostgreSQL)。这三种数据库的配置虽然大同小异,但也有各自的差别。如今该总结下了。
以下是基于beego框架对PostgreSQL数据库进行操作。
models/models.go
1 package models 2 3 import ( 4 "github.com/astaxie/beego/orm" 5 ) 6 7 type Student struct { 8 Id int64 9 Name string 10 Age int 11 } 12 13 func init() { 14 orm.RegisterModel(new(Student)) 15 }
main.go
1 package main 2 3 import ( 4 "fmt" 5 "github.com/astaxie/beego" 6 "github.com/astaxie/beego/orm" 7 "postgresql/models" 8 9 _ "github.com/lib/pq" 10 _ "postgresql/routers" 11 ) 12 13 func init() { 14 // PostgreSQL 配置 15 orm.RegisterDriver("postgres", orm.DR_Postgres) // 注册驱动 16 orm.RegisterDataBase("default", "postgres", "user=postgres password=tom dbname=test host=127.0.0.1 port=5432 sslmode=disable") 17 18 /** 19 * MySQL 配置 20 * 注册驱动 21 * orm.RegisterDriver("mysql", orm.DR_MySQL) 22 * mysql用户:root ,root的秘密:tom , 数据库名称:test , 数据库别名:default 23 * orm.RegisterDataBase("default", "mysql", "root:tom@/test?charset=utf8") 24 */ 25 /** 26 * Sqlite 配置 27 * 注册驱动 28 * orm.RegisterDriver("sqlite", orm.DR_Sqlite) 29 * 数据库存放位置:./datas/test.db , 数据库别名:default 30 * orm.RegisterDataBase("default", "sqlite3", "./datas/test.db") 31 */ 32 // 自动建表 33 orm.RunSyncdb("default", false, true) 34 } 35 36 func main() { 37 orm.Debug = true 38 o := orm.NewOrm() 39 o.Using("default") 40 stu := new(models.Student) 41 stu.Name = "tom" 42 stu.Age = 25 43 44 fmt.Println(o.Insert(stu)) 45 beego.Run() 46 }
PostgreSQL数据库里自动建表和插入数据库如下: