from: http://studygolang.com/articles/2148
About
一个数据库ORM.
How to use? @H_404_34@ Insertgo get github.com/ablegao/orm
例子//引用模块import "github.com/ablegao/orm"//MysqL 驱动import _ "github.com/go-sql-driver/MysqL"//建立连接 // 参数分别为 名称 , 驱动, 连接字符串// 注:必须包含一个default 连接, 作为默认连接。orm.NewDatabase("default","MysqL","user:passwd@ip/database?charset=utf8")//建立一个数据模型。 type UserInfo struct { orm.Object ID int64 `fIEld:"ID" auto:"true" index:"pk"` name string `fIEld:"username"` Passwd string `fIEld:"password"`}//数据库表名称func(self *UserInfo) Gettablename()string{ return "database.user_info"}//查询一个用户名为 "test1"的账户 user:=new(UserInfo)err:=user.Objects(user).Filter("name","test1").One()fmt.Println(user.ID,user.Passwd,user.name)//Update user.name="test2"user.Objects(user).Save()// or user.Objects(user).Filter("ID",1).Change("name","test2").Save()//查询ID小于10的所有数据users,err:=user.Objects(user).Filter("ID__lt",10).All()if err == nil { for _,userinfo:= range users{ u:=userinfo.(*UserInfo) fmt.Println(u.ID,u.Passwd,u.name) }}//Create user:=new(UserInfo)user.name ="test1"user.Passwd ="123456"ID,err:=user.Objects(user).Save()//deleteuser.Objects(user).Delete()// User other Database connect orm.NewDatabase("other","user:passwd@ip/database?charset=utf8")user.Objects(user).Db("other").Filter(x,x).Delete()// or user.Objects(user).Filter().Db("other").XXX()Filter or FilterOr
.Filter(fIEldname,val )
Filter 作为orm 的主要作用是过滤查询条件, 最终将会转换为sql 语句中的where 条件语句。 可以填写多次, 多次数据为and 关系
FilterOr 作为Orm 的主要过滤查询条件, 最终将妆化为sql 语句的where 条件语句,可以填写多次, 多次数据以 or 连接
user.Objects(user).Filter(“name”,“test1”).FilterOr(“name”,“test2”).All()
//select ID,username,passwd from database.user_info where username='test1' or username='test2'
__exact 精确等于 like 'aaa' __IExact 精确等于 忽略大小写 ilike 'aaa' __contains 包含 like '%aaa%' __icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。__gt 大于__gte 大于等于__ne 不等于__lt 小于__lte 小于等于__startswith 以...开头__istartswith 以...开头 忽略大小写__endswith 以...结尾__IEndswith 以...结尾,忽略大小写尚未支持:
__in 存在于一个List范围内__range 在...范围内__year 日期字段的年份__month 日期字段的月份__day 日期字段的日__isnull=True/FalseChange
修改数据, 执行时,相当于 sql 语句中的set
传入一个结构字段 和值
.Change(“FIEld”,1)
update from xxx set fIEld=1
可以添加魔法参数:
.Change(“FIEld__add”,1 )
update from xxx set fIEld=fIEld+1
add 累加 fIEld=fIEld+1
sub 累减 fIEld=fIEld-1
mult 累乘 fIEld=fIEld*1 div 累计出发 fIEld=fIEld/1
以上是内存溢出为你收集整理的简便的golang orm全部内容,希望文章能够帮你解决简便的golang orm所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)