這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
http://www.dotcoo.com/golang-mysql-mymysql
golang,做很多系統都離不開資料庫,當然最常用的還是mysql,今天測試了一下串連mysql資料庫,呼呼爽啊.再次為golang歡呼.
這次用的是golang的mymysql驅動,好久沒有用mysql了,還是忘不了她.
package main import ( "fmt" "database/sql" "github.com/ziutek/mymysql/godrv") // 使用者結構type User struct { uid int username string password string} func main() { // 設定串連編碼 godrv.Register("SET NAMES utf8") // 串連資料庫 db, err := sql.Open("mymysql", "tcp:127.0.0.1:3306*go/root/123456") if err != nil { panic(err) } defer db.Close() // 插入資料 stmt, err := db.Prepare("insert into user values(null, ?, ?)") if err != nil { panic(err) } defer stmt.Close() // sql參數 result, err := stmt.Exec("豆蔻", "dotcoo.com") if err != nil { panic(err) } // 擷取影響的行數 affect, err := result.RowsAffected() if err != nil { panic(err) } fmt.Printf("%d\n", affect) // 擷取自增id id, err := result.LastInsertId() if err != nil { panic(err) } fmt.Printf("%d\n", id) // 查詢資料 rows, err := db.Query("select * from user") if err != nil { panic(err) } defer rows.Close() // 擷取的使用者 users := []User{} // 讀取資料 for rows.Next() { user := User{} err := rows.Scan(&user.uid, &user.username, &user.password) if nil != err { panic(err) } users = append(users, user) } // 顯示使用者資訊 for _, user := range users { fmt.Printf("%d, %s, %s\n", user.uid, user.username, user.password) }}