xorm的基本使用

新建结构体

type User struct {
	Id int
	Name string
	Age int
	Address string
    DeletedAt time.Time `xorm:"deleted"`
}

 新建一个user的结构体指针

user := new(User)

 添加数据

user.Name = "张三"
user.Age = 12
user.Address = "河南" 
err := engine.Insert(&user)

  删除数据

  Deleted可以让你不真正的删除数据,而是标记一个删除时间。使用此特性需要在xorm标记中使用deleted标记。

//这是个假删除,也可以叫软删除
engine.Id(1).Delete(&user)
// delete FROM user WHERE id = 1

——————————————————————————————————————————————
其实他在有deleted的时候,实现的SQL的Update
// UPDATE user SET ..., deleted_at = ? WHERE id = 1

 更新数据

在xorm中,结构体会自动忽略空字段(比如说默认值,比如int 的0 、string的""),这个时候,怎么解决呢?

指定字段更新,使用Cols 

// 例1:
engine.Cols("age", "name").Update(&user)  //name和age字段强制更新
// UPDATE user SET age=? AND name=?

指定字段不更新,使用Omit

// 例1:
engine.Omit("name", "age").Update(&user)
// UPDATE user SET name = ? AND age = ? //name和age字段强制不更新

 查询数据

has, err := engine.Get(&user)
// SELECT * FROM user LIMIT 1

 准确查询数据

has, err := engine.Where("name = ?", name).Cols("id").Get(&id)
// SELECT id FROM user WHERE name = ?

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值