2015-02-25 07:49:18 +00:00
Core is a lightweight wrapper of sql.DB.
2015-02-25 07:48:20 +00:00
2016-12-13 07:01:02 +00:00
[](https://circleci.com/gh/go-xorm/core/tree/master)
2015-02-25 07:48:20 +00:00
# Open
```Go
db, _ := core.Open(db, connstr)
```
# SetMapper
```Go
db.SetMapper(SameMapper())
```
2015-02-25 08:01:40 +00:00
## Scan usage
2015-02-25 07:48:20 +00:00
2015-02-25 08:01:40 +00:00
### Scan
```Go
2015-02-25 07:48:20 +00:00
rows, _ := db.Query()
for rows.Next() {
rows.Scan()
2015-02-25 08:01:40 +00:00
}
```
### ScanMap
```Go
rows, _ := db.Query()
for rows.Next() {
2015-02-25 07:48:20 +00:00
rows.ScanMap()
2015-02-25 08:01:40 +00:00
```
### ScanSlice
You can use `[]string` , `[][]byte` , `[]interface{}` , `[]*string` , `[]sql.NullString` to ScanSclice. Notice, slice's length should be equal or less than select columns.
```Go
rows, _ := db.Query()
cols, _ := rows.Columns()
for rows.Next() {
var s = make([]string, len(cols))
rows.ScanSlice(& s)
}
```
```Go
rows, _ := db.Query()
cols, _ := rows.Columns()
for rows.Next() {
var s = make([]*string, len(cols))
rows.ScanSlice(& s)
}
```
### ScanStruct
```Go
rows, _ := db.Query()
for rows.Next() {
2015-02-25 07:48:20 +00:00
rows.ScanStructByName()
rows.ScanStructByIndex()
}
```
2015-02-25 08:01:40 +00:00
## Query usage
2015-02-25 07:48:20 +00:00
```Go
rows, err := db.Query("select * from table where name = ?", name)
2015-02-25 08:01:40 +00:00
user = User{
Name:"lunny",
}
2015-02-25 07:48:20 +00:00
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)
```
2015-02-25 08:01:40 +00:00
## QueryRow usage
2015-02-25 07:48:20 +00:00
```Go
2015-02-25 08:01:40 +00:00
row := db.QueryRow("select * from table where name = ?", name)
2015-02-25 07:48:20 +00:00
2015-02-25 08:01:40 +00:00
user = User{
Name:"lunny",
}
row := db.QueryRowStruct("select * from table where name = ?Name",
2015-02-25 07:48:20 +00:00
& user)
2015-02-25 08:01:40 +00:00
2015-02-25 07:48:20 +00:00
var user = map[string]interface{}{
"name": "lunny",
}
2015-02-25 08:01:40 +00:00
row = db.QueryRowMap("select * from table where name = ?name",
2015-02-25 07:48:20 +00:00
& user)
```
2015-02-25 08:01:40 +00:00
## Exec usage
2015-02-25 07:48:20 +00:00
```Go
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)
```