Go XORM
xorm
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。
电子书 XORM操作指南
常用命令
xorm 是一组数据库操作命令的工具,包含如下命令:
reverse 反转一个数据库结构,生成代码
shell 通用的数据库操作客户端,可对数据库结构和数据操作
dump Dump数据库中所有结构和数据到标准输出
source 从标注输入中执行SQL文件
driver 列出所有支持的数据库驱动
编译xorm工具
下载数据库驱动
go get github.com/go-sql-driver/mysql //MyMysql
go get github.com/ziutek/mymysql/godrv //MyMysql
go get github.com/lib/pq //Postgres
go get github.com/mattn/go-sqlite3 //SQLite
go get github.com/go-xorm/cmd/xorm
到GOPATH\src\github.com\go-xorm\cmd\xorm 目录下,执行
go build
当前目录产生xorm文件,window下产生xorm.exe文件
生成struct
database command
sqlite xorm reverse sqite3 test.db templates/goxorm C:\temp
mysql xorm reverse mysql "root:123456@(127.0.0.1:3306)/test?charset=utf8" templates/goxorm C:\temp
mymysql xorm reverse mymysql xorm_test2/root/ templates/goxorm C:\temp
postgres xorm reverse postgres "user=postgres password=123456 dbname=test host=127.0.0.1 port=5432 sslmode=disable" templates/goxorm C:\temp
mssql xorm reverse mssql "server=127.0.0.1;user id=testid;password=testpwd;database=testdb" templates/goxorm C:\temp
./xorm reverse mysql root:password@"(host:3306)"/database?charset=utf8 templates/goxorm
目录参数省略,会在当前目录建立一个 models 目录, 该目录有生成的go文件
内容如:
package model
import (
"time"
)
type ClickData struct {
Id int `xorm:"not null pk autoincr comment('主键') INT(10)"`
Adid string `xorm:"not null default '' comment('广告计划id') VARCHAR(32)"`
Cid string `xorm:"not null default '' comment('广告创意id') VARCHAR(100)"`
ImeiMd5 string `xorm:"not null default '' comment('安卓设备识别码的md5') unique(uk_its) CHAR(32)"`
Mac string `xorm:"not null default '' comment('MAC地址的md5sum') CHAR(32)"`
Androidid string `xorm:"VARCHAR(40)"`
ClientIp string `xorm:"VARCHAR(40)"`
Source string `xorm:"not null default '' comment('媒体来源') unique(uk_its) VARCHAR(32)"`
Timestamp int64 `xorm:"not null default 0 comment('点击时间') unique(uk_its) BIGINT(18)"`
Callback string `xorm:"not null default '' comment('回调参数') VARCHAR(2048)"`
Channel string `xorm:"comment('渠道唯一标示') VARCHAR(40)"`
ChangeFlag int `xorm:"not null default 0 comment('渠道是否变更(0:没有变更; 1:变更过)') TINYINT(1)"`
OldChannel string `xorm:"not null default '' comment('原始日志的渠道名') VARCHAR(50)"`
BookId int `xorm:"default 0 INT(11)"`
CreatedAt time.Time `xorm:"not null default 'CURRENT_TIMESTAMP' comment('插入日期') DATETIME"`
}
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程