ablegao/orm

ORM数据库操作框架
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 国产
投 递 者 何安宜
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

一个好用直观的 数据库操作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()

  • About 一个数据库ORM. How to use? Insert go get github.com/ablegao/orm 例子 //引用模块 import "github.com/ablegao/orm" //MysqL 驱动 import _ "github.com/go-sql-driver/MysqL" //建立连接 // 参数分别为 名称 , 驱动, 连接字符串 // 注:必须包含

  • ##About 一个数据库ORM. How to use? Insert go get github.com/ablegao/orm 例子 //引用模块 import "github.com/ablegao/orm" //MysqL 驱动 import _ "github.com/go-sql-driver/MysqL" //建立连接 // 参数分别为 名称 , 驱动, 连接字符串 // 注:必须

  • 给Orm 追加了分布式redis的支持, 目的是为了解决游戏服务器开发时, 数据变更的快速处理。 感兴趣的同学可以看一下。 Insert go get github.com/ablegao/orm ##数据库Model 建立方法 //引用模块 import "github.com/ablegao/orm" //mysql 驱动 import _ "github.com/go-sql-driver

 相关资料
  • 本文向大家介绍Laravel框架数据库CURD操作、连贯操作总结,包括了Laravel框架数据库CURD操作、连贯操作总结的使用技巧和注意事项,需要的朋友参考一下 一、Selects 检索表中的所有行 从表检索单个行 检索单个列的行 检索一个列值列表 该方法将返回一个数组标题的作用。你也可以指定一个自定义的键列返回的数组 指定一个Select子句 Select子句添加到一个现有的查询$query

  • 数据库的操作是每个phpweb框架的核心功能,我们提供数据库数据库的标准调用模式为: 你可以执行严格模式,也就是左边的那条线,Controller->Service->Dao->Model->DB,也可以走简单模式 Controller->Model->DB。个人根据自己的需求,走标准麻烦些(几乎所有的机构和系统都是这样^_^), 但是扩展性会好些,但是使用简单模式开发效率就会高些,性能会好些,但

  • 这一小节是对数据库操作做一个简单的封装,不涉及复杂的事务操作等。 我选用了Sql2o作为底层数据库框架作为支持,它的简洁易用性让我刮目相看,后面我们也会写如何实现一个ORM框架。 /** * 数据库支持 * @author biezhi * */ public final class MarioDb { private static Sql2o sql2o = null;

  • NoSQL(Not Only SQL),指的是非关系型的数据库。随着Web2.0的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。 而Go语言作为21世纪的C语言,对NOSQL的支持也是很好,目前流行的NOSQL主要有redis、mongoD

  • 由于我们的框架目前只支持使用mysql,如果使用其他数据库,则不建议使用本框架。本节将介绍如何读取mysql数据库中的数据。 首先需要修改配置文件 App1/Config/Config.php   //默认Mysql数据库 'default_mysql_config' => 'mysql', //Mysql1数据库配置 'mysql' => array( 'host'  => 'localhost

  • phpGrace Db 概述 phpgrace db 操作类以pdo为基础、全面采用预处理机制、最大程度保证了数据操作的安全性。采用了单利模式,保证一库一连、一表一对象!为高效开发提供了基础。 大部分的数据操作都无需编写复杂的sql命令,简单配置即可。 准备工作:数据库信息配置 使用数据库操作前,请打开保证数据库配置正确!具体操作见上一节 ^_^ 数据操作详解 下文将以数据表 persons为例,

  • 创建表 查看表结构 查看表详细结构 修改表名 修改字段的数据类型 修改字段名 增加字段 删除字段 删除关联表 (1)删除表的外键约束 (2)删除没有被关联的普通表 (3)删除被其他表关联的父表 创建表: CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件]) “完整性约束条件”是指指定某些字段的某些特

  • 本文向大家介绍Python对数据库操作,包括了Python对数据库操作的使用技巧和注意事项,需要的朋友参考一下 Windows下安装MySQL-python 下载地址:https://pypi.python.org/pypi/MySQL-python/1.2.5 安装到系统即可。 linux下安装MySQL-python以连接MySQL: 下载地址:https://pypi.python.org/