一、数据库的连接及初始化
// demo_db.go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var (
db *sql.DB
)
func check(err error) {
if err != nil {
fmt.Println(err)
}
}
func InitDB(mydb *sql.DB) {
db = mydb
}
func main() {
mydb, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/imooc")
check(err)
defer mydb.Close()
InitDB(mydb)
fmt.Println(db)
}
二、增删改查
// demo_method.go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
var (
db *sql.DB
)
func check(err error) {
if err != nil {
fmt.Println(err)
}
}
func InitDB(mydb *sql.DB) {
db = mydb
}
func DemoExec() {
sql_insert := "insert user set username=?"
result, err := db.Exec(sql_insert, "xiaoming")
check(err)
rows, err := result.RowsAffected()
check(err)
fmt.Printf("rows affected: %d\n", rows)
}
func DemoQuery() {
sql_query := "select acctid from account where money=?"
rows, err := db.Query(sql_query, 2000)
defer rows.Close()
check(err)
for rows.Next() {
var id int
if err := rows.Scan(&id); err != nil {
fmt.Println(err)
}
fmt.Printf("id: %d\n", id)
}
}
func DemoQueryR