Go語言運算元據庫

壹頁書發表於2014-08-28
Go語言運算元據庫非常的簡單,
他也有一個類似JDBC的東西"database/sql"
實現類是"github.com/go-sql-driver/mysql"
使用過JDBC的人應該一看就懂

對日期的處理比較晦澀,沒有JAVA流暢


  1. package main

  2. import (
  3.     "database/sql"
  4.     _ "github.com/go-sql-driver/mysql"
  5.     "log"
  6.     "time"
  7. )

  8. /*
  9.     create table t(
  10.         id int primary key auto_increment,
  11.         name varchar(20) not null,
  12.         ts timestamp
  13.     );
  14. */
  15. func insert(db *sql.DB) {
  16.     stmt, err := db.Prepare("insert into t(name,ts) values(?,?)")
  17.     defer stmt.Close()

  18.     if err != nil {
  19.         log.Println(err)
  20.         return
  21.     }
  22.     ts, _ := time.Parse("2006-01-02 15:04:05", "2014-08-28 15:04:00")
  23.     stmt.Exec("edmond", ts)
  24. }

  25. func main() {
  26.     db, err := sql.Open("mysql", "xx:xx@tcp(127.0.0.1:3306)/mvbox?charset=utf8")
  27.     if err != nil {
  28.         log.Fatalf("Open database error: %s\n", err)
  29.     }
  30.     defer db.Close()

  31.     err = db.Ping()
  32.     if err != nil {
  33.         log.Fatal(err)
  34.     }

  35.     insert(db)

  36.     rows, err := db.Query("select id,name,ts from t where id>?", 1)
  37.     if err != nil {
  38.         log.Println(err)
  39.     }

  40.     defer rows.Close()

  41.     var id int
  42.     var name string
  43.     var ts string

  44.     for rows.Next() {
  45.         err := rows.Scan(&id, &name,&ts)
  46.         if err != nil {
  47.             log.Fatal(err)
  48.         }
  49.         log.Println(id, name,ts)
  50.     }

  51.     err = rows.Err()
  52.     if err != nil {
  53.         log.Fatal(err)
  54.     }
  55. }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1259745/,如需轉載,請註明出處,否則將追究法律責任。

相關文章