xorm使用说明(PostgreSQL)
生活随笔
收集整理的這篇文章主要介紹了
xorm使用说明(PostgreSQL)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考: http://gobook.io/read/github.com/go-xorm/manual-en-US/
安裝
go get github.com/go-xorm/xorm go get github.com/lib/pq使用
Create ORM Engine
package main import (_ "github.com/lib/pq""github.com/go-xorm/xorm""fmt" )const (host = "localhost"port = 5432user = "test"password = "test"dbname = "blogbase" )var engine *xorm.Enginefunc main() {var err errorpsqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+"password=%s dbname=%s sslmode=disable",host, port, user, password, dbname)engine, err = xorm.NewEngine("postgres", psqlInfo)if err != nil {println(err.Error())return}## 設置日志f, err1 := os.Create("sql.log")if err1 != nil {println(err1.Error())return}engine.SetLogger(xorm.NewSimpleLogger(f)) }設置連接池參數(Connections pool)
- Use engine.SetMaxIdleConns() to set idle connections.
- Use engine.SetMaxOpenConns() to set Max connections. This methods support only Go 1.2+.
- Use engine.SetConnMaxLifetime() to set Max life time. This methods support only Go 1.6+.
define a struct
名字映射規則 name mapping rule
三種規則:
- SnakeMapper:如果有大寫字母,就在大寫字母之間插入’_’, 并把大寫字母改為小寫,比如 ID,改為’i_d’, xorm默認使用這種模式
- SameMapper: 保持不變
- GonicMapper: 把大寫字母改為小寫,比如ID改為’id’
設置規則
engine.SetMapper(core.SameMapper{})表名和規則名可以使用不同的規則
engine.SetTableMapper(core.SameMapper{}) engine.SetColumnMapper(core.SnakeMapper{})列類型映射
| implemented Conversion | Conversion.ToDB / Conversion.FromDB | Text |
| int, int8, int16, int32, uint, uint8, uint16, uint32 | Int | |
| int64, uint64 | BigInt | |
| float32 | Float | |
| float64 | Double | |
| complex64, complex128 | json.Marshal / json.UnMarshal | Varchar(64) |
| []uint8 | Blob | |
| array, slice, map except []uint8 | json.Marshal / json.UnMarshal | Text |
| bool | 1 or 0 | Bool |
| string | Varchar(255) | |
| time.Time | DateTime | |
| cascade struct | primary key field value | BigInt |
| struct | json.Marshal / json.UnMarshal | Text |
| Others | Text |
總結
以上是生活随笔為你收集整理的xorm使用说明(PostgreSQL)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式的版本控制工具(Git)
- 下一篇: 设置SQLSERVER的混合身份验证模式