ablegao/ormORM数据库操作框架
一个好用直观的 数据库操作ORM
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'
关于Filter字段的魔法参数
目前支持:
__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/False
Change
修改数据, 执行时,相当于 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
例子
//引用模块 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() //delete user.Objects(user).Delete() // User other Database connect orm.NewDatabase("other" , "mysql" , "user:passwd@ip/database?charset=utf8") user.Objects(user).Db("other").Filter(x ,x).Delete() // or user.Objects(user).Filter().Db("other").XXX()
评论
Beerus-DB数据库操作框架
Beerus-DB,是Beerus的子项目之一,是一个数据库操作框架,用到了[go-sql-driver/mysql]来做数据库连接与基础操作,在此基础上做了很多扩展,比如:连接池管理,多数据源,事务
Beerus-DB数据库操作框架
0
QueryFlow流畅的数据库操作框架
简介QueryFlow是一款持久层框架,旨在使用者可以像水流一样流畅、简单、快速地编写数据库操作代码。该文档适用于QueryFlowV1.0.1特性方便自由:既可以直接编写复杂SQL,也可以使用条件构
QueryFlow流畅的数据库操作框架
0
InteractiveGraph图数据库交互操作框架
InteractiveGraph是一个使用JavaScript开发的开源项目,为大规模图数据提供了一个基于Web的交互操作框架,其数据可以来自于本地的GSON文件。 Interactiv
InteractiveGraph图数据库交互操作框架
0
Vert.x 操作数据库
哈喽,大家好,欢迎阅读闲话Java的Vert.x部分,本篇是闲话Vert.x的第四期,《Vert.x操作数据库》。本期由闲话哥带您了解,如何通过Vert.x来连接数据库。后续所使用的代码均开源在:https://github.com/happy-fly/wxc...
猿天飞
0
数据库处理框架数据库处理框架
是一个通用数据库处理框架(可以包含MSSQLPOSTGRESQL,SQLITEEXCELMYSQLDB2ORACLE...只要你愿意实现接口就可以).很便捷地进行常用数据库操作(增删改查).其性能是几
数据库处理框架数据库处理框架
0