Go語(yǔ)言操作mysql數(shù)據(jù)庫(kù)簡(jiǎn)單例子
Go語(yǔ)言操作數(shù)據(jù)庫(kù)非常的簡(jiǎn)單,
他也有一個(gè)類似JDBC的東西"database/sql"
實(shí)現(xiàn)類是"github.com/go-sql-driver/mysql"
使用過(guò)JDBC的人應(yīng)該一看就懂
對(duì)日期的處理比較晦澀,沒(méi)有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)
}
}
相關(guān)文章
GO 函數(shù)式選項(xiàng)模式(Functional Options Pattern)
Option模式支持傳遞多個(gè)參數(shù),并且在參數(shù)個(gè)數(shù)、類型發(fā)生變化時(shí)保持兼容性,任意順序傳遞參數(shù),下面給大家介紹GO 函數(shù)式選項(xiàng)模式(Functional Options Pattern)的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-10-10
Go中map數(shù)據(jù)類型3點(diǎn)小知識(shí)
這篇文章主要介紹了Go中map數(shù)據(jù)類型3點(diǎn)小知識(shí),在go中使用map時(shí)可能會(huì)用本文中的小知識(shí),需要的朋友可以參考下2014-10-10

