Socket
Socket
Sign inDemoInstall

gopkg.in/issue9/orm.v0

Package Overview
Dependencies
0
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    gopkg.in/issue9/orm.v0

Package orm 一个简单小巧的 orm 实现方案。 目前内置了对以下数据库的支持: 其它数据库,用户可以通过实现 Dialect 接口,来实现相应的支持。 初始化: 默认情况下,orm 包并不会加载任何数据库的实例。所以想要用哪个数据库,需要手动初始化: 占位符 SQL 语句可以使用'#'字符在语句中暂替真实的表名前缀,也可以使用{} 包含一个关键字,使其它成为普通列名,如: 在实际执行时,如 DB.Query(),将第一个参数 replace 指定为 true, 相关的占位符就会被替换成与当前环境想容的实例,如在表名前缀为p_, 数据库为 mysql 时,会被替换成以下语句,然后再执行: DB.Query(),DB.Exec(),DB.Prepare().DB.Where() 及 Tx与之对应的函数都可以使用占位符。 Model 不能指定占位符,它们默认总会使用占位符,且无法取消。 Model: orm 包通过 struct tag 来描述 model 在数据库中的结构。大概格式如下: 目前支持以下的 struct tag: 关于core.Metaer接口。 在go不能将struct tag作用于结构体,所以为了指定一些表级别的属性, 只能通过接口的形式,在接口方法中返回一段类似于struct tag的字符串, 以达到相同的目的。 在core.Metaer中除了可以指定name(table_name)和check(name,expr)两个属性之外, 还可指定一些自定义的属性,这些属性都将会被保存到Model.Meta中。 约束名: index,unique,check,fk 都是可以指定约束名的,在表中,约束名必须是唯一的, 即便是不同类型的约束,比如已经有一个 unique 的约束名叫作 name,那么其它类 型的约束,就不能再取这个名称了。 如何使用: Create: 可以通过 Engine.Create() 或是 Tx.Create() 创建一张表。 Update: Delete: Insert: Select: Query/Exec: 事务: 默认的 DB 是不支持事务的,若需要事务支持,则需要调用 DB.Begin() 返回事务对象 Tx,当然并不是所有的数据库都支持事务操作的。 Tx拥有一组与 DB 相同的接口,另外还提供了一组以 `Mult` 开头的函数, 用以同时操作多条记录的。


Version published

Readme

Source

orm Build Status

type User struct {
    // 对应表中的id字段,为自增列,从0开始
    Id          int64      `orm:"name(id);ai(0);"`
    // 对应表中的first_name字段,为索引index_name的一部分
    FirstName   string     `orm:"name(first_name);index(index_name)"`
    LastName    string     `orm:"name(first_name);index(index_name)"`
}

// 创建User表
e.Create(&User{})

// 更新id为1的记录
e.Update(&User{Id:1,FirstName:"abc"})
e.Where("id=?", 1).Table("#tbl_name").Update(true, "FirstName", "abc")

// 删除id为1的记录
e.Delete(&User{Id:1})
e.Where("id=?", 1).Table("#tbl_name").Delete(true, []interface{}{"id":1})

// 插入数据
e.Insert(&User{FirstName:"abc"})

// 查找数据
maps,err := e.Where("id<?", 5).Table("#tbl_name").SelectMap(true, "*")

安装

go get github.com/issue9/orm

文档

Go Walker GoDoc

版权

本项目采用MIT开源授权许可证,完整的授权说明可在LICENSE文件中找到。

FAQs

Last updated on 25 Feb 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc