Aucune description

xormplus 3d1121edfb add UniqueIdentifier type for supporting mssql il y a 7 ans
.gitignore 9962f563c4 Initial commit il y a 10 ans
LICENSE 9962f563c4 Initial commit il y a 10 ans
README.md a2e615076f 初始化 il y a 10 ans
benchmark.sh a2e615076f 初始化 il y a 10 ans
cache.go 99d20b5b6b small refactor il y a 8 ans
column.go 0f69a142b3 fix: oracle default key in xorm tag error il y a 8 ans
config a2e615076f 初始化 il y a 10 ans
converstion.go a2e615076f 初始化 il y a 10 ans
db.go 2750e9842a add ToMapString method for rows and row il y a 9 ans
db_test.go c5b6cd8dd2 fix Scan NullTime type failed at sqlite3 il y a 8 ans
description a2e615076f 初始化 il y a 10 ans
dialect.go b5e3f16634 add comment create support for mysql il y a 8 ans
driver.go a2e615076f 初始化 il y a 10 ans
error.go 0911afc633 serious extends bug fixed & correct logger file path il y a 9 ans
filter.go a2e615076f 初始化 il y a 10 ans
ilogger.go 0911afc633 serious extends bug fixed & correct logger file path il y a 9 ans
index.go a2e615076f 初始化 il y a 10 ans
mapper.go a2e615076f 初始化 il y a 10 ans
mapper_test.go a2e615076f 初始化 il y a 10 ans
pk.go a2e615076f 初始化 il y a 10 ans
pk_test.go c5b6cd8dd2 fix Scan NullTime type failed at sqlite3 il y a 8 ans
rows.go cf101d54ca 1.add ErrorRow function il y a 8 ans
scan.go c5b6cd8dd2 fix Scan NullTime type failed at sqlite3 il y a 8 ans
table.go 1c7322c734 column,table实体添加注释属性 il y a 8 ans
type.go 3d1121edfb add UniqueIdentifier type for supporting mssql il y a 7 ans

README.md

Core is a lightweight wrapper of sql.DB.

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)