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数据库里自动建表和插入数据库如下:

  

原文地址:https://www.cnblogs.com/hezhixiong/p/4617951.html