2013-05-16 06:12:27 +00:00
|
|
|
|
# xorm
|
|
|
|
|
|
2013-05-12 05:43:09 +00:00
|
|
|
|
[English](https://github.com/lunny/xorm/blob/master/README.md)
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
2013-07-03 03:49:29 +00:00
|
|
|
|
xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。
|
2013-05-08 13:42:22 +00:00
|
|
|
|
|
2013-06-08 04:47:28 +00:00
|
|
|
|
[](https://drone.io/github.com/lunny/xorm/latest)
|
|
|
|
|
|
2013-09-11 08:30:17 +00:00
|
|
|
|
## 讨论
|
|
|
|
|
请加入QQ群:280360085 进行讨论。
|
|
|
|
|
|
2013-05-16 06:12:27 +00:00
|
|
|
|
## 驱动支持
|
|
|
|
|
|
2013-05-08 13:42:22 +00:00
|
|
|
|
目前支持的Go数据库驱动如下:
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
* Mysql: [github.com/Go-SQL-Driver/MySQL](https://github.com/Go-SQL-Driver/MySQL)
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
2013-08-08 05:24:38 +00:00
|
|
|
|
* MyMysql: [github.com/ziutek/mymysql/godrv](https://github.com/ziutek/mymysql/godrv)
|
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
* SQLite: [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)
|
|
|
|
|
|
2013-09-11 09:28:27 +00:00
|
|
|
|
* Postgres: [github.com/bylevel/pq](https://github.com/bylevel/pq)
|
2013-08-08 05:24:38 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
## 更新日志
|
|
|
|
|
|
2013-08-08 05:24:38 +00:00
|
|
|
|
* **v0.1.9** : 新增 postgres 和 mymysql 驱动支持; 在Postgres中支持原始SQL语句中使用 ` 和 ? 符号; 新增Cols, StoreEngine, Charset 函数;SQL语句打印支持io.Writer接口,默认打印到控制台;新增更多的字段类型支持,详见 [映射规则](#mapping);删除废弃的MakeSession和Create函数。
|
|
|
|
|
* **v0.1.8** : 新增联合index,联合unique支持,请查看 [映射规则](#mapping)。
|
2013-07-03 03:49:29 +00:00
|
|
|
|
* **v0.1.7** : 新增IConnectPool接口以及NoneConnectPool, SysConnectPool, SimpleConnectPool三种实现,可以选择不使用连接池,使用系统连接池和使用自带连接池三种实现,默认为SysConnectPool,即系统自带的连接池。同时支持自定义连接池。Engine新增Close方法,在系统退出时应调用此方法。
|
2013-06-25 17:05:46 +00:00
|
|
|
|
* **v0.1.6** : 新增Conversion,支持自定义类型到数据库类型的转换;新增查询结构体自动检测匿名成员支持;新增单向映射支持;
|
2013-06-22 01:05:19 +00:00
|
|
|
|
* **v0.1.5** : 新增对多线程的支持;新增Sql()函数;支持任意sql语句的struct查询;Get函数返回值变动;MakeSession和Create函数被NewSession和NewEngine函数替代;
|
2013-06-04 08:56:59 +00:00
|
|
|
|
* **v0.1.4** : Get函数和Find函数新增简单的级联载入功能;对更多的数据库类型支持。
|
2013-05-19 06:11:47 +00:00
|
|
|
|
* **v0.1.3** : Find函数现在支持传入Slice或者Map,当传入Map时,key为id;新增Table函数以为多表和临时表进行支持。
|
2013-05-12 13:37:10 +00:00
|
|
|
|
* **v0.1.2** : Insert函数支持混合struct和slice指针传入,并根据数据库类型自动批量插入,同时自动添加事务
|
2013-05-11 10:38:43 +00:00
|
|
|
|
* **v0.1.1** : 添加 Id, In 函数,改善 README 文档
|
|
|
|
|
* **v0.1.0** : 初始化工程
|
|
|
|
|
|
2013-05-09 02:48:30 +00:00
|
|
|
|
## 特性
|
2013-05-16 06:12:27 +00:00
|
|
|
|
|
2013-07-03 03:49:29 +00:00
|
|
|
|
* 支持Struct和数据库表之间的映射,映射方式支持命名约定和Tag两种方式,映射支持继承
|
2013-05-09 02:48:30 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
* 事务支持
|
2013-05-09 02:48:30 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
* 同时支持原始SQL语句和ORM操作的混合执行
|
2013-05-09 02:48:30 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
* 使用连写来简化调用
|
2013-05-09 02:48:30 +00:00
|
|
|
|
|
2013-08-08 05:24:38 +00:00
|
|
|
|
* 支持使用Id, In, Where, Limit, Join, Having, Table, Sql, Cols等函数和结构体等方式作为条件
|
2013-07-03 03:49:29 +00:00
|
|
|
|
|
|
|
|
|
* 支持数据库连接池
|
|
|
|
|
|
|
|
|
|
* 支持级联加载struct
|
|
|
|
|
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
2013-05-08 13:42:22 +00:00
|
|
|
|
## 安装
|
|
|
|
|
|
|
|
|
|
go get github.com/lunny/xorm
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
2013-09-11 09:19:10 +00:00
|
|
|
|
## 快速开始
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
2013-09-11 09:19:10 +00:00
|
|
|
|
请访问 [快速开始](https://github.com/lunny/xorm/blob/master/QuickStart.md) 查看详细文档
|
2013-05-08 13:42:22 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
|
2013-05-16 07:03:08 +00:00
|
|
|
|
## 文档
|
2013-05-16 06:12:27 +00:00
|
|
|
|
|
2013-05-11 07:45:24 +00:00
|
|
|
|
请访问 [GoWalker](http://gowalker.org/github.com/lunny/xorm) 查看详细文档
|
2013-05-08 13:42:22 +00:00
|
|
|
|
|
2013-05-16 07:03:08 +00:00
|
|
|
|
## FAQ
|
2013-05-16 06:12:27 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
1.问:xorm的tag和json的tag如何同时起作用?
|
2013-05-08 13:42:22 +00:00
|
|
|
|
|
2013-05-11 10:38:43 +00:00
|
|
|
|
答案:使用空格分开
|
2013-05-08 13:42:22 +00:00
|
|
|
|
|
2013-05-12 13:37:10 +00:00
|
|
|
|
```Go
|
2013-05-11 13:27:36 +00:00
|
|
|
|
type User struct {
|
|
|
|
|
Name string `json:"name" xorm:"name"`
|
|
|
|
|
}
|
|
|
|
|
```
|
2013-05-03 07:32:52 +00:00
|
|
|
|
|
|
|
|
|
## LICENSE
|
|
|
|
|
|
2013-05-11 13:27:36 +00:00
|
|
|
|
BSD License
|
|
|
|
|
[http://creativecommons.org/licenses/BSD/](http://creativecommons.org/licenses/BSD/)
|