Unknwon dbd9f05c06 vendor: update github.com/go-xorm/* | 7 vuotta sitten | |
---|---|---|
.. | ||
CONTRIBUTING.md | 7 vuotta sitten | |
LICENSE | 7 vuotta sitten | |
README.md | 7 vuotta sitten | |
README_CN.md | 7 vuotta sitten | |
VERSION | 7 vuotta sitten | |
circle.yml | 7 vuotta sitten | |
doc.go | 7 vuotta sitten | |
engine.go | 7 vuotta sitten | |
error.go | 7 vuotta sitten | |
gen_reserved.sh | 7 vuotta sitten | |
goracle_driver.go | 7 vuotta sitten | |
helpers.go | 7 vuotta sitten | |
logger.go | 7 vuotta sitten | |
lru_cacher.go | 7 vuotta sitten | |
memory_store.go | 7 vuotta sitten | |
mssql_dialect.go | 7 vuotta sitten | |
mymysql_driver.go | 7 vuotta sitten | |
mysql_dialect.go | 7 vuotta sitten | |
mysql_driver.go | 7 vuotta sitten | |
oci8_driver.go | 7 vuotta sitten | |
odbc_driver.go | 7 vuotta sitten | |
oracle_dialect.go | 7 vuotta sitten | |
pg_reserved.txt | 7 vuotta sitten | |
postgres_dialect.go | 7 vuotta sitten | |
pq_driver.go | 7 vuotta sitten | |
processors.go | 7 vuotta sitten | |
rows.go | 7 vuotta sitten | |
session.go | 7 vuotta sitten | |
session_delete.go | 7 vuotta sitten | |
session_find.go | 7 vuotta sitten | |
session_get.go | 7 vuotta sitten | |
session_insert.go | 7 vuotta sitten | |
session_iterate.go | 7 vuotta sitten | |
session_raw.go | 7 vuotta sitten | |
session_schema.go | 7 vuotta sitten | |
session_sum.go | 7 vuotta sitten | |
session_tx.go | 7 vuotta sitten | |
session_update.go | 7 vuotta sitten | |
sqlite3_dialect.go | 7 vuotta sitten | |
sqlite3_driver.go | 7 vuotta sitten | |
statement.go | 7 vuotta sitten | |
syslogger.go | 7 vuotta sitten | |
types.go | 7 vuotta sitten | |
xorm.go | 7 vuotta sitten |
Xorm is a simple and powerful ORM for Go.
The last master version is not backwards compatible. You should use engine.ShowSQL()
and engine.Logger().SetLevel()
instead of engine.ShowSQL =
, engine.ShowInfo =
and so on.
Struct <-> Table Mapping Support
Chainable APIs
Transaction Support
Both ORM and raw SQL operation Support
Sync database schema Support
Query Cache speed up
Database Reverse support, See Xorm Tool README
Simple cascade loading support
Optimistic Locking support
SQL Builder support via github.com/go-xorm/builder
Drivers for Go's sql package which currently support database/sql includes:
MyMysql: github.com/ziutek/mymysql/godrv
Postgres: github.com/lib/pq
Tidb: github.com/pingcap/tidb
SQLite: github.com/mattn/go-sqlite3
MsSql: github.com/lunny/godbc
Oracle: github.com/mattn/go-oci8 (experiment)
v0.6.0
Where
, And
, Or
methods can use builder.Cond
as parameterv0.5.0
v0.4.5
v0.4.4
If you have gopm installed,
gopm get github.com/go-xorm/xorm
Or
go get github.com/go-xorm/xorm
engine, err := xorm.NewEngine(driverName, dataSourceName)
type User struct {
Id int64
Name string
Salt string
Age int
Passwd string `xorm:"varchar(200)"`
Created time.Time `xorm:"created"`
Updated time.Time `xorm:"updated"`
}
err := engine.Sync2(new(User))
results, err := engine.Query("select * from user")
affected, err := engine.Exec("update user set age = ? where name = ?", age, name)
affected, err := engine.Insert(&user)
// INSERT INTO struct () values ()
affected, err := engine.Insert(&user1, &user2)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values ()
affected, err := engine.Insert(&users)
// INSERT INTO struct () values (),(),()
affected, err := engine.Insert(&user1, &users)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values (),(),()
has, err := engine.Get(&user)
// SELECT * FROM user LIMIT 1
has, err := engine.Where("name = ?", name).Desc("id").Get(&user)
// SELECT * FROM user WHERE name = ? ORDER BY id DESC LIMIT 1
var users []User
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
type Detail struct {
Id int64
UserId int64 `xorm:"index"`
}
type UserDetail struct {
User `xorm:"extends"`
Detail `xorm:"extends"`
}
var users []UserDetail
err := engine.Table("user").Select("user.*, detail.*")
Join("INNER", "detail", "detail.user_id = user.id").
Where("user.name = ?", name).Limit(10, 0).
Find(&users)
// SELECT user.*, detail.* FROM user INNER JOIN detail WHERE user.name = ? limit 0 offset 10
err := engine.Iterate(&User{Name:name}, func(idx int, bean interface{}) error {
user := bean.(*User)
return nil
})
// SELECT * FROM user
rows, err := engine.Rows(&User{Name:name})
// SELECT * FROM user
defer rows.Close()
bean := new(Struct)
for rows.Next() {
err = rows.Scan(bean)
}
affected, err := engine.Id(1).Update(&user)
// UPDATE user SET ... Where id = ?
affected, err := engine.Update(&user, &User{Name:name})
// UPDATE user SET ... Where name = ?
var ids = []int64{1, 2, 3}
affected, err := engine.In("id", ids).Update(&user)
// UPDATE user SET ... Where id IN (?, ?, ?)
// force update indicated columns by Cols
affected, err := engine.Id(1).Cols("age").Update(&User{Name:name, Age: 12})
// UPDATE user SET age = ?, updated=? Where id = ?
// force NOT update indicated columns by Omit
affected, err := engine.Id(1).Omit("name").Update(&User{Name:name, Age: 12})
// UPDATE user SET age = ?, updated=? Where id = ?
affected, err := engine.Id(1).AllCols().Update(&user)
// UPDATE user SET name=?,age=?,salt=?,passwd=?,updated=? Where id = ?
affected, err := engine.Where(...).Delete(&user)
// DELETE FROM user Where ...
affected, err := engine.Id(2).Delete(&user)
counts, err := engine.Count(&user)
// SELECT count(*) AS total FROM user
err := engine.Where(builder.NotIn("a", 1, 2).And(builder.In("b", "c", "d", "e"))).Find(&users)
// SELECT id, name ... FROM user WHERE a NOT IN (?, ?) AND b IN (?, ?, ?)
Please visit Xorm on Google Groups
If you want to pull request, please see CONTRIBUTING
BSD License http://creativecommons.org/licenses/BSD/