xorm使用小结
2017-06-24 21:24
573 查看
一.xorm简介
http://www.xorm.io/docs/(文档地址)
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单SQL需求。xorm支持两种风格的混用。
二.使用小结
1.连接
func newXorm() {
engine, _ = xorm.NewEngine("mysql", "数据库名称:数据库连接密码@(数据库地址:3306)/数据库实例名称?charset=utf8")
tbMapper := core.NewPrefixMapper(core.SnakeMapper{}, "prefix_")
engine.SetTableMapper(tbMapper)
}
2.建表
以config表为例
config表字段为:id,varname,value...
在定义结构体时字段名必须为大写,否则报错
若config表结构中无Id作为自增主键,则可以通过 `orm:"pk"`来定义
3.CURD
(1)查询
得到的config是一个结构数据
得到的是一个[]map[string][string]类型的
也可以通过其他的方法查询
(2)更新
使用上述方法将需要更新的列写在Clos中,是因为 value有可能为0,此时直接用第一种方法是不生效的
若需要更新的值为0或nil将会不做更新
(3)添加
(4)删除
http://www.xorm.io/docs/(文档地址)
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单SQL需求。xorm支持两种风格的混用。
二.使用小结
1.连接
func newXorm() {
engine, _ = xorm.NewEngine("mysql", "数据库名称:数据库连接密码@(数据库地址:3306)/数据库实例名称?charset=utf8")
tbMapper := core.NewPrefixMapper(core.SnakeMapper{}, "prefix_")
engine.SetTableMapper(tbMapper)
}
2.建表
以config表为例
config表字段为:id,varname,value...
type Config struct { Id int Varname string Value string }
在定义结构体时字段名必须为大写,否则报错
若config表结构中无Id作为自增主键,则可以通过 `orm:"pk"`来定义
3.CURD
(1)查询
newXorm() var config []Config sql := "SELECT `varname`,`value` FROM `onfig`" engine.Sql(sql).Find(&config)
得到的config是一个结构数据
data,_ := engine.QueryString("SELECT `varname`,`value` FROM `config`")
得到的是一个[]map[string][string]类型的
newXorm() var ret Config engine.Where("id= ?", id).Get(&ret) return ret.Value
也可以通过其他的方法查询
var ret Config ret.Id = id has,_ := engine.Get(&ret)
(2)更新
newXorm() var ret Config ret.Varname= varname _,err := engine.Update(&ret, &Config{Id:id)
官方文档中有一种方法是将。Id(id)放在前面,测试了一下报错,主键冲突。
newXorm() var ret Config ret.Value = value engine.Cols("value").Update(&ret,Config{Id:id})
使用上述方法将需要更新的列写在Clos中,是因为 value有可能为0,此时直接用第一种方法是不生效的
若需要更新的值为0或nil将会不做更新
(3)添加
var data Config data.Varname = varname data.Value = value newXorm() _,err := engine.Insert(&data)
(4)删除
newXorm() var ret Config engine.Id(id).Delete(&ret)
相关文章推荐
- DBGrideh使用小结(一)
- 创建,测试和使用Web服务的小结
- TChart使用经验小结
- vi编辑器的学习使用(小结)
- c#.NET使用小结(1)
- SQL SERVER SQL Agent服务使用技巧小结
- ASP.NET中TreeView控件使用小结
- 水日报表的使用小结
- treeview的使用小结
- XML文档搜索使用小结
- 使用弹出窗口的技巧小结
- Web Services 中 Web Method 的使用小结(一)
- TestDirector安装使用过程小结
- Ant使用小结
- jbuilder8开发环境使用小结
- SQL Server 最佳实践分析器使用小结
- 在JAVA中使用文档对象模型DOM经验小结[转载]
- ASP.NET中TreeView控件使用小结
- C# OleDbCommand 和 OleDbDataReader 使用小结
- 关于使用ODBC+VC操作DBF文件问题小结