Go语言操作数据库

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29254281/viewspace-1259745/

你可能感兴趣的:(Go语言操作数据库)