Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,sqlite,mssql,oracle,cockroach
Go to file
Lunny Xiao 7d5d723a71
rename args to params (#40)
2018-03-08 09:08:13 +08:00
.gitignore add set db to dialect 2014-04-18 18:39:59 +08:00
LICENSE include copyright name + email 2015-09-04 12:26:30 -04:00
README.md add circleci status on README 2016-12-13 15:01:02 +08:00
benchmark.sh init core after sperated repository 2014-04-08 20:57:04 +08:00
cache.go small refactor 2017-12-21 09:38:32 +08:00
circle.yml fix Scan NullTime type failed at sqlite3 (#33) 2017-11-23 20:03:32 +08:00
column.go fix: oracle default key in xorm tag error (#30) 2017-11-06 14:23:03 +08:00
converstion.go init core after sperated repository 2014-04-08 20:57:04 +08:00
db.go add ToMapString method for rows and row 2016-08-05 23:24:16 +08:00
db_test.go fix Scan NullTime type failed at sqlite3 (#33) 2017-11-23 20:03:32 +08:00
dialect.go rename args to params (#40) 2018-03-08 09:08:13 +08:00
driver.go add RegisteredDriverSize() 2014-04-16 01:11:50 +08:00
error.go bug fixed go-xorm/xorm#357 2016-02-19 17:23:00 +08:00
filter.go add SeqFilter 2014-04-11 23:32:10 +08:00
ilogger.go ILogger interface changed 2016-03-31 18:16:24 +08:00
index.go add isregular for index 2015-02-17 15:00:51 +08:00
mapper.go Merge branch 'master' of github.com:go-xorm/core 2015-02-12 14:50:58 +08:00
mapper_test.go Make initialisms configurable 2015-01-20 17:11:10 +02:00
pk.go bug fixed for PK marshal & unmarshl 2015-03-14 22:16:36 +08:00
pk_test.go fix Scan NullTime type failed at sqlite3 (#33) 2017-11-23 20:03:32 +08:00
rows.go add NewRow from rows 2017-08-22 13:50:40 +08:00
scan.go fix Scan NullTime type failed at sqlite3 (#33) 2017-11-23 20:03:32 +08:00
table.go column,table实体添加注释属性 (#24) 2017-05-03 20:16:46 +08:00
table_test.go Remove allocations from GetColumn & GetColumnIdx 2016-10-28 13:52:58 +03:00
type.go add SYSNAME type for supporting mssql's in-built sysdiagrams (#39) 2018-02-27 16:09:17 +08:00

README.md

Core is a lightweight wrapper of sql.DB.

CircleCI

Open

db, _ := core.Open(db, connstr)

SetMapper

db.SetMapper(SameMapper())

Scan usage

Scan

rows, _ := db.Query()
for rows.Next() {
    rows.Scan()
}

ScanMap

rows, _ := db.Query()
for rows.Next() {
    rows.ScanMap()

ScanSlice

You can use []string, [][]byte, []interface{}, []*string, []sql.NullString to ScanSclice. Notice, slice's length should be equal or less than select columns.

rows, _ := db.Query()
cols, _ := rows.Columns()
for rows.Next() {
    var s = make([]string, len(cols))
    rows.ScanSlice(&s)
}
rows, _ := db.Query()
cols, _ := rows.Columns()
for rows.Next() {
    var s = make([]*string, len(cols))
    rows.ScanSlice(&s)
}

ScanStruct

rows, _ := db.Query()
for rows.Next() {
    rows.ScanStructByName()
    rows.ScanStructByIndex()
}

Query usage

rows, err := db.Query("select * from table where name = ?", name)

user = User{
    Name:"lunny",
}
rows, err := db.QueryStruct("select * from table where name = ?Name",
            &user)

var user = map[string]interface{}{
    "name": "lunny",
}
rows, err = db.QueryMap("select * from table where name = ?name",
            &user)

QueryRow usage

row := db.QueryRow("select * from table where name = ?", name)

user = User{
    Name:"lunny",
}
row := db.QueryRowStruct("select * from table where name = ?Name",
            &user)

var user = map[string]interface{}{
    "name": "lunny",
}
row = db.QueryRowMap("select * from table where name = ?name",
            &user)

Exec usage

db.Exec("insert into user (`name`, title, age, alias, nick_name,created) values (?,?,?,?,?,?)", name, title, age, alias...)

user = User{
    Name:"lunny",
    Title:"test",
    Age: 18,
}
result, err = db.ExecStruct("insert into user (`name`, title, age, alias, nick_name,created) values (?Name,?Title,?Age,?Alias,?NickName,?Created)",
            &user)

var user = map[string]interface{}{
    "Name": "lunny",
    "Title": "test",
    "Age": 18,
}
result, err = db.ExecMap("insert into user (`name`, title, age, alias, nick_name,created) values (?Name,?Title,?Age,?Alias,?NickName,?Created)",
            &user)