Go语言操作数据库非常的简单,
他也有一个类似JDBC的东西"database/sql"
实现类是"github.com/go-sql-driver/mysql"
使用过JDBC的人应该一看就懂
对日期的处理比较晦涩,没有JAVA流畅
-
package main
-
-
import (
-
"database/sql"
-
_ "github.com/go-sql-driver/mysql"
-
"log"
-
"time"
-
)
-
-
/*
-
create table t(
-
id int primary key auto_increment,
-
name varchar(20) not null,
-
ts timestamp
-
);
-
*/
-
func insert(db *sql.DB) {
-
stmt, err := db.Prepare("insert into t(name,ts) values(?,?)")
-
defer stmt.Close()
-
-
if err != nil {
-
log.Println(err)
-
return
-
}
-
ts, _ := time.Parse("2006-01-02 15:04:05", "2014-08-28 15:04:00")
-
stmt.Exec("edmond", ts)
-
}
-
-
func main() {
-
db, err := sql.Open("mysql", "xx:xx@tcp(127.0.0.1:3306)/mvbox?charset=utf8")
-
if err != nil {
-
log.Fatalf("Open database error: %s\n", err)
-
}
-
defer db.Close()
-
-
err = db.Ping()
-
if err != nil {
-
log.Fatal(err)
-
}
-
-
insert(db)
-
-
rows, err := db.Query("select id,name,ts from t where id>?", 1)
-
if err != nil {
-
log.Println(err)
-
}
-
-
defer rows.Close()
-
-
var id int
-
var name string
-
var ts string
-
-
for rows.Next() {
-
err := rows.Scan(&id, &name,&ts)
-
if err != nil {
-
log.Fatal(err)
-
}
-
log.Println(id, name,ts)
-
}
-
-
err = rows.Err()
-
if err != nil {
-
log.Fatal(err)
-
}
-
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1259745/
,如需转载,请注明出处,否则将追究法律责任。