update README

This commit is contained in:
Lunny Xiao 2013-06-22 09:02:01 +08:00
parent cb70eff84a
commit 2380da0322
2 changed files with 29 additions and 32 deletions

View File

@ -45,14 +45,14 @@ Drivers for Go's sql package which currently support database/sql includes:
## Quick Start
1.Create a database engine just like sql.Open, commonly you just need create once.
1.Create a database engine just like sql.Open, commonly you just need create once. Please notice, Create function will be deprecated, use NewEngine instead.
```Go
import (
_ "github.com/Go-SQL-Driver/MySQL"
"github.com/lunny/xorm"
)
engine := xorm.Create("mysql", "root:123@/test?charset=utf8")
err, engine := xorm.NewEngine("mysql", "root:123@/test?charset=utf8")
```
or
@ -62,7 +62,7 @@ import (
_ "github.com/mattn/go-sqlite3"
"github.com/lunny/xorm"
)
engine = xorm.Create("sqlite3", "./test.db")
err, engine = xorm.NewEngine("sqlite3", "./test.db")
```
1.1.If you want to show all generated SQL
@ -91,7 +91,7 @@ err := engine.CreateTables(&User{})
// err = engine.CreateAll()
```
4.then, insert an struct to table
4.then, insert a struct to table, if success, User.Id will be set to id
```Go
id, err := engine.Insert(&User{Name:"lunny"})
@ -110,11 +110,11 @@ rows, err := engine.Update(&user, &User{Id:1})
```Go
var user = User{Id:27}
err := engine.Get(&user)
// or err := engine.Id(27).Get(&user)
has, err := engine.Get(&user)
// or has, err := engine.Id(27).Get(&user)
var user = User{Name:"xlw"}
err := engine.Get(&user)
has, err := engine.Get(&user)
```
6.Fetch multipe objects into a slice or a map, use Find
@ -183,14 +183,12 @@ res, err := engine.Exec(sql, "xiaolun", 1)
## Advanced Usage
for deep usage, you should create a session, this func will create a database connection immediatelly
for deep usage, you should create a session, this func will create a database connection immediatelly.Please notice, MakeSession will be deprecated last, use NewSession instead
```Go
session, err := engine.MakeSession()
session := engine.NewSession()
defer session.Close()
if err != nil {
return
}
```
1.Fetch a single object by where
@ -223,7 +221,7 @@ err := session.Find(&everyone)
```Go
// add Begin() before any action
session.Begin()
err := session.Begin()
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
_, err = session.Insert(&user1)
if err != nil {
@ -254,7 +252,7 @@ if err != nil {
```Go
// add Begin() before any action
session.Begin()
err := session.Begin()
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
_, err = session.Insert(&user1)
if err != nil {

View File

@ -41,14 +41,14 @@ xorm是一个Go语言的ORM库. 通过它可以使数据库操作非常简便。
## 快速开始
1.创建数据库引擎这个函数的参数和sql.Open相同但不会立即创建连接 (例如: mysql)
1.创建数据库引擎这个函数的参数和sql.Open相同但不会立即创建连接 (例如: mysql),注意Create方法将在后续版本中被弃用请使用NewEngine方法。
```Go
import (
_ "github.com/Go-SQL-Driver/MySQL"
"github.com/lunny/xorm"
)
engine := xorm.Create("mysql", "root:123@/test?charset=utf8")
engine, err := xorm.NewEngine("mysql", "root:123@/test?charset=utf8")
```
or
@ -58,7 +58,7 @@ import (
_ "github.com/mattn/go-sqlite3"
"github.com/lunny/xorm"
)
engine = xorm.Create("sqlite3", "./test.db")
engine, err = xorm.NewEngine("sqlite3", "./test.db")
```
1.1.默认将不会显示自动生成的SQL语句如果要显示则需要设置
@ -85,10 +85,12 @@ type User struct {
err := engine.CreateTables(&User{})
```
4.然后,可以将一个结构体作为一条记录插入到表中。
4.然后,可以将一个结构体作为一条记录插入到表中 如果插入成功将会返回id同时User对象的Id也会被自动赋值
```Go
id, err := engine.Insert(&User{Name:"lunny"})
user := &User{Name:"lunny"}
id, err := engine.Insert(user)
fmt.Println(user.Id)
```
或者执行更新操作:
@ -104,13 +106,13 @@ rows, err := engine.Update(&user, &User{Id:1})
```Go
var user = User{Id:27}
err := engine.Get(&user)
// or err := engine.Id(27).Get(&user)
has, err := engine.Get(&user)
// or has, err := engine.Id(27).Get(&user)
var user = User{Name:"xlw"}
err := engine.Get(&user)
has, err := engine.Get(&user)
```
6.获取多个对象到一个Slice或一个Map对象中可以用Find方法
6.获取多个对象到一个Slice或一个Map对象中可以用Find方法如果传入的是map则key中存放的是id
```Go
var everyone []Userinfo
@ -144,8 +146,8 @@ err := engine.In("id", 1, 3, 5).Find(&tenusers) //Get All id in (1, 3, 5)
7.Delete方法
```Go
err := engine.Delete(&User{Id:1})
// or err := engine.Id(1).Delete(&User{})
num, err := engine.Delete(&User{Id:1})
// or num, err := engine.Id(1).Delete(&User{})
```
8.Count方法
@ -175,14 +177,11 @@ res, err := engine.Exec(sql, "xiaolun", 1)
## 高级用法
<a name="mapping" id="mapping"></a>
更高级的用法我们必须要使用session对象session对象在创建时会立刻创建一个数据库连接。
更高级的用法我们必须要使用session对象session对象在创建时会立刻创建一个数据库连接。注意MakeSession方法将会在后续版本中移除请使用NewSession方法替代。
```Go
session, err := engine.MakeSession()
session := engine.NewSession()
defer session.Close()
if err != nil {
return
}
```
1.session对象同样也可以查询
@ -215,7 +214,7 @@ err := session.Find(&everyone)
```Go
// add Begin() before any action
session.Begin()
err := session.Begin()
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
_, err = session.Insert(&user1)
if err != nil {
@ -246,7 +245,7 @@ if err != nil {
```Go
// add Begin() before any action
session.Begin()
err := session.Begin()
user1 := Userinfo{Username: "xiaoxiao", Departname: "dev", Alias: "lunny", Created: time.Now()}
_, err = session.Insert(&user1)
if err != nil {