xorm使用
xorm使用
在d:\goxorm新建俩个文件
config
1 2 3 | lang=go genJson=1 prefix=cos_ |
struct.go.tpl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package {{.Models}} {{$ilen := len .Imports}} {{ if gt $ilen 0}} import ( {{range .Imports}} "{{.}}" {{end}} ) {{end}} {{range .Tables}} type {{Mapper .Name}} struct { {{$table := .}} {{range .ColumnsSeq}}{{$col := $table.GetColumn .}} {{Mapper $col.Name}} {{Type $col}} {{Tag $table $col}} {{end}} } {{end}} |
在go终端执行以下命令
D:\>xorm reverse postgres postgres://postgres:asdf@localhost:5432/postgres?sslmode=disable goxorm
会在d:\modals自动生成数据库所有表的XORM需要的结构体(也可以手动,如果数据表多,最好还是自动生成)
1 2 3 4 | type Tunit struct { Unitid string `json: "unitid" xorm: "not null pk VARCHAR(9)" ` Unitname string `json: "unitname" xorm: "VARCHAR(9)" ` } |
测试程序
package main import ( "fmt" _ "github.com/lib/pq" "xorm.io/xorm" ) type Tunit struct { Unitid string `json:"unitid" xorm:"not null pk VARCHAR(9)"` Unitname string `json:"unitname" xorm:"VARCHAR(9)"` } func main() { db, err := xorm.NewEngine("postgres", "postgres://postgres:asdf@localhost:5432/postgres?sslmode=disable") if err != nil { fmt.Println(err) } //2.显示sql语句 //db.ShowSQL(true) //3.设置连接数 db.SetMaxIdleConns(2000) db.SetMaxOpenConns(1000) // 查询数组,find的第二个可选参数是查询条件bean var s []Tunit db.Cols().Find(&s) fmt.Println(s) }
测试程序2:
package main import ( "fmt" _ "github.com/lib/pq" "xorm.io/xorm" ) type Tunit struct { Unitid string `json:"unitid" xorm:"not null pk VARCHAR(9)"` Unitname string `json:"unitname" xorm:"VARCHAR(9)"` } func main() { master, err := xorm.NewEngine("postgres", "postgres://postgres:asdf@localhost:5432/postgres?sslmode=disable") if err != nil { return } slave1, err := xorm.NewEngine("postgres", "postgres://postgres:asdf@localhost:5432/postgres2?sslmode=disable") if err != nil { return } slaves := []*xorm.Engine{slave1} db, err := xorm.NewEngineGroup(master, slaves, xorm.RandomPolicy()) db.SetMaxOpenConns(2000) db.SetMaxIdleConns(10) // 查询数组,find的第二个可选参数是查询条件bean var s []Tunit db.Cols().Find(&s) fmt.Println(s) }
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/15269968.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-09-14 mormot2 tbsonwriter
2018-09-14 使用stream(流)实现多表数据传输
2018-09-14 firedac引擎DATASNAP多表查询和多表提交
2017-09-14 ini配置文件在LINUX下面程序打不开?
2017-09-14 咏南LINUX中间件
2016-09-14 大数据分包算法