updated readme

This commit is contained in:
Lunny Xiao 2015-12-30 16:58:58 +08:00
parent 00ee02e2bb
commit d3155a494d
2 changed files with 56 additions and 56 deletions

View File

@ -90,13 +90,13 @@ Or
# Quick Start # Quick Start
## Create Engine * Create Engine
```Go ```Go
engine, err := xorm.NewEngine(driverName, dataSourceName) engine, err := xorm.NewEngine(driverName, dataSourceName)
``` ```
## Define a struct and Sync2 table struct to database * Define a struct and Sync2 table struct to database
```Go ```Go
type User struct { type User struct {
@ -112,19 +112,19 @@ type User struct {
err := engine.Sync2(new(User)) err := engine.Sync2(new(User))
``` ```
## Query a SQL string, the returned results is []map[string][]byte * Query a SQL string, the returned results is []map[string][]byte
```Go ```Go
results, err := engine.Query("select * from user") results, err := engine.Query("select * from user")
``` ```
## Execute a SQL string, the returned results * Execute a SQL string, the returned results
```Go ```Go
affected, err := engine.Exec("update user set age = ? where name = ?", age, name) affected, err := engine.Exec("update user set age = ? where name = ?", age, name)
``` ```
## Insert one or multipe records to database * Insert one or multipe records to database
```Go ```Go
affected, err := engine.Insert(&user) affected, err := engine.Insert(&user)
@ -139,7 +139,7 @@ affected, err := engine.Insert(&user1, &users)
// INSERT INTO struct2 () values (),(),() // INSERT INTO struct2 () values (),(),()
``` ```
## Query one record from database * Query one record from database
```Go ```Go
has, err := engine.Get(&user) has, err := engine.Get(&user)
@ -148,32 +148,32 @@ has, err := engine.Where("name = ?", name).Desc("id").Get(&user)
// SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1 // SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1
``` ```
## Query multiple records from database, also you can use join and extends * Query multiple records from database, also you can use join and extends
```Go ```Go
var users []User var users []User
err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users) err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users)
// SELECT * FROM user WHERE name = ? AND age > 10 limit 0 offset 10 // SELECT * FROM user WHERE name = ? AND age > 10 limit 0 offset 10
type Detail struct { type Detail struct {
Id int64 Id int64
UserId int64 `xorm:"index"` UserId int64 `xorm:"index"`
} }
type UserDetail struct { type UserDetail struct {
User `xorm:"extends"` User `xorm:"extends"`
Detail `xorm:"extends"` Detail `xorm:"extends"`
} }
var users []UserDetail var users []UserDetail
err := engine.Table("user").Select("user.*, detail.*") err := engine.Table("user").Select("user.*, detail.*")
Join("INNER", "detail", "detail.user_id = user.id"). Join("INNER", "detail", "detail.user_id = user.id").
Where("user.name = ?", name).Limit(10, 0). Where("user.name = ?", name).Limit(10, 0).
Find(&users) Find(&users)
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10 // SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10
``` ```
## Query multiple records and record by record handle, there two methods Iterate and Rows * Query multiple records and record by record handle, there two methods Iterate and Rows
```Go ```Go
err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error { err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
@ -191,7 +191,7 @@ for rows.Next() {
} }
``` ```
## Update one or more records, default will update non-empty and non-zero fields except to use Cols, AllCols and etc. * Update one or more records, default will update non-empty and non-zero fields except to use Cols, AllCols and etc.
```Go ```Go
affected, err := engine.Id(1).Update(&user) affected, err := engine.Id(1).Update(&user)
@ -216,14 +216,14 @@ affected, err := engine.Id(1).AllCols().Update(&user)
// UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ? // UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ?
``` ```
## Delete one or more records, Delete MUST has conditon * Delete one or more records, Delete MUST has conditon
```Go ```Go
affected, err := engine.Where(...).Delete(&user) affected, err := engine.Where(...).Delete(&user)
// DELETE FROM user Where ... // DELETE FROM user Where ...
``` ```
## Count records * Count records
```Go ```Go
counts, err := engine.Count(&user) counts, err := engine.Count(&user)

View File

@ -86,13 +86,13 @@ xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作
# 快速开始 # 快速开始
## 第一步创建引擎driverName, dataSourceName和database/sql接口相同 * 第一步创建引擎driverName, dataSourceName和database/sql接口相同
```Go ```Go
engine, err := xorm.NewEngine(driverName, dataSourceName) engine, err := xorm.NewEngine(driverName, dataSourceName)
``` ```
## 定义一个和表同步的结构体,并且自动同步结构体到数据库 * 定义一个和表同步的结构体,并且自动同步结构体到数据库
```Go ```Go
type User struct { type User struct {
@ -108,19 +108,19 @@ type User struct {
err := engine.Sync2(new(User)) err := engine.Sync2(new(User))
``` ```
## 最原始的也支持SQL语句查询返回的结果类型为 []map[string][]byte * 最原始的也支持SQL语句查询返回的结果类型为 []map[string][]byte
```Go ```Go
results, err := engine.Query("select * from user") results, err := engine.Query("select * from user")
``` ```
## 执行一个SQL语句 * 执行一个SQL语句
```Go ```Go
affected, err := engine.Exec("update user set age = ? where name = ?", age, name) affected, err := engine.Exec("update user set age = ? where name = ?", age, name)
``` ```
## 插入一条或者多条记录 * 插入一条或者多条记录
```Go ```Go
affected, err := engine.Insert(&user) affected, err := engine.Insert(&user)
@ -135,7 +135,7 @@ affected, err := engine.Insert(&user1, &users)
// INSERT INTO struct2 () values (),(),() // INSERT INTO struct2 () values (),(),()
``` ```
## 查询单条记录 * 查询单条记录
```Go ```Go
has, err := engine.Get(&user) has, err := engine.Get(&user)
@ -144,32 +144,32 @@ has, err := engine.Where("name = ?", name).Desc("id").Get(&user)
// SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1 // SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1
``` ```
## 查询多条记录当然可以使用Join和extends来组合使用 * 查询多条记录当然可以使用Join和extends来组合使用
```Go ```Go
var users []User var users []User
err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users) err := engine.Where("name = ?", name).And("age > 10").Limit(10, 0).Find(&users)
// SELECT * FROM user WHERE name = ? AND age > 10 limit 0 offset 10 // SELECT * FROM user WHERE name = ? AND age > 10 limit 0 offset 10
type Detail struct { type Detail struct {
Id int64 Id int64
UserId int64 `xorm:"index"` UserId int64 `xorm:"index"`
} }
type UserDetail struct { type UserDetail struct {
User `xorm:"extends"` User `xorm:"extends"`
Detail `xorm:"extends"` Detail `xorm:"extends"`
} }
var users []UserDetail var users []UserDetail
err := engine.Table("user").Select("user.*, detail.*") err := engine.Table("user").Select("user.*, detail.*")
Join("INNER", "detail", "detail.user_id = user.id"). Join("INNER", "detail", "detail.user_id = user.id").
Where("user.name = ?", name).Limit(10, 0). Where("user.name = ?", name).Limit(10, 0).
Find(&users) Find(&users)
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10 // SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10
``` ```
## 根据条件遍历数据库,可以有两种方式: Iterate and Rows * 根据条件遍历数据库,可以有两种方式: Iterate and Rows
```Go ```Go
err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error { err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
@ -187,7 +187,7 @@ for rows.Next() {
} }
``` ```
## 更新数据除非使用Cols,AllCols函数指明默认只更新非空和非0的字段 * 更新数据除非使用Cols,AllCols函数指明默认只更新非空和非0的字段
```Go ```Go
affected, err := engine.Id(1).Update(&user) affected, err := engine.Id(1).Update(&user)
@ -212,14 +212,14 @@ affected, err := engine.Id(1).AllCols().Update(&user)
// UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ? // UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ?
``` ```
## 删除记录需要注意删除必须至少有一个条件否则会报错。要清空数据库可以用EmptyTable * 删除记录需要注意删除必须至少有一个条件否则会报错。要清空数据库可以用EmptyTable
```Go ```Go
affected, err := engine.Where(...).Delete(&user) affected, err := engine.Where(...).Delete(&user)
// DELETE FROM user Where ... // DELETE FROM user Where ...
``` ```
## 获取记录条数 * 获取记录条数
```Go ```Go
counts, err := engine.Count(&user) counts, err := engine.Count(&user)