数据库信息
创建数据库:CREATE DATABASE go-test-01 DEFAULT CHARACTER SET utf8;
创建表:
1 2 3 4 5 |
create table table1( id int primary key auto_increment, name varchar(20) not null, addr varchar(20) ); |
Go实例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func insert(db *sql.DB) { stmt, err := db.Prepare("insert into table1(name, addr) values(?, ?)") defer stmt.Close() if err != nil { fmt.Println("Insert table Error =", err) } stmt.Exec("Tom", "Beijing") } func main() { db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/go_test_01?charset=utf8") defer db.Close() if err != nil { fmt.Println("Open database Error =", err) } insert(db) } |
查询多行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
func Uids(tid int64) ([]int64, error) { db, err := sql.Open("mysql", g.Config().Uic.Addr) if err != nil { return []int64{}, err } defer db.Close() err = db.Ping() if err != nil { return []int64{}, err } s := fmt.Sprintf("SELECT uid FROM rel_team_user WHERE tid = %d", tid) rows, err := db.Query(s) if err != nil { return []int64{}, err } arr := []int64{} var uid int64 for rows.Next() { err := rows.Scan(&uid) if err != nil { return []int64{}, err } arr = append(arr, uid) } return arr, err } |
查询一行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
func SelectTeamById(id int64) *Team { if id < = 0 { return nil } db, err := sql.Open("mysql", g.Config().Uic.Addr) if err != nil { return nil } defer db.Close() err = db.Ping() if err != nil { return nil } var obj Team s := fmt.Sprintf("SELECT name, resume, creator FROM team WHERE id = %d", id) var name string var resume string var creator int64 errQueryRow := db.QueryRow(s).Scan(&name, &resume, &creator) if errQueryRow != nil { return nil } obj.Id = id obj.Name = name obj.Resume = resume obj.Creator = creator return &obj } |
转载请注明:Imekaku-Blog » Go语言-MySQL