Go語言操作mysql數(shù)據(jù)庫簡單例子
Go語言操作數(shù)據(jù)庫非常的簡單,
他也有一個類似JDBC的東西"database/sql"
實(shí)現(xiàn)類是"github.com/go-sql-driver/mysql"
使用過JDBC的人應(yīng)該一看就懂
對日期的處理比較晦澀,沒有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)文章
goFrame的隊(duì)列g(shù)queue對比channel使用詳解
這篇文章主要為大家介紹了goFrame的gqueue對比channel使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06以Golang為例詳解AST抽象語法樹的原理與實(shí)現(xiàn)
AST?使用樹狀結(jié)構(gòu)來表達(dá)編程語言的結(jié)構(gòu),樹中的每一個節(jié)點(diǎn)都表示源碼中的一個結(jié)構(gòu),本文將以GO語言為例,為大家介紹一下AST抽象語法樹的原理與實(shí)現(xiàn),希望對大家有所幫助2024-01-01go項(xiàng)目實(shí)現(xiàn)mysql接入及web?api的操作方法
這篇文章主要介紹了go項(xiàng)目實(shí)現(xiàn)mysql接入以及web api,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08