xorm使用小结

一.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...

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)

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值