关键词搜索

源码搜索 ×
×

用go来操作mysql

发布2018-09-30浏览5564次

详情内容

       先看数据库内容:

  1. mysql> select * from user;
  2. +----+--------+----------+
  3. | id | strKey | strValue |
  4. +----+--------+----------+
  5. | 1 | xxx | yyy |
  6. | 2 | xxx2 | yyy2 |
  7. | 3 | xxx | yyy3 |
  8. +----+--------+----------+
  9. 3 rows in set (0.00 sec)

        用go来操作一下:

  1. package main
  2. import (
  3. "database/sql"
  4. "fmt"
  5. _ "github.com/go-sql-driver/mysql"
  6. )
  7. var DB *sql.DB
  8. func init() {
  9. var err error
  10. DB, err = sql.Open("mysql", "root@/taoge") // taoge is db name
  11. if err != nil {
  12. panic("heheda")
  13. }else{
  14. fmt.Println("Open ok")
  15. }
  16. }
  17. func get(key string) bool {
  18. sqlstr := "SELECT strKey, strValue FROM user where strKey = ?"
  19. stmt, err := DB.Prepare(sqlstr)
  20. defer stmt.Close()
  21. if err != nil {
  22. fmt.Println("Prepare error", err)
  23. return false
  24. }
  25. rows, err := stmt.Query(key)
  26. defer rows.Close()
  27. if err != nil {
  28. fmt.Println("Query error", err)
  29. return false
  30. }
  31. for rows.Next() {
  32. var key, val string
  33. err = rows.Scan(&key, &val)
  34. if err != nil {
  35. fmt.Println("Scan error", err)
  36. return false
  37. }
  38. fmt.Println("Result:", key, val)
  39. }
  40. return true
  41. }
  42. func main() {
  43. get("xxx")
  44. }

        结果:

  1. Open ok
  2. Result: xxx yyy
  3. Result: xxx yyy3

       

       如果是update操作, 那也简单, 无非就是用Exec而已。

       创建数据库表的话, 可以这么玩:

  1. package main
  2. import (
  3. "database/sql"
  4. "fmt"
  5. _ "github.com/go-sql-driver/mysql"
  6. )
  7. var DB *sql.DB
  8. func init() {
  9. var err error
  10. DB, err = sql.Open("mysql", "root@/taoge") // taoge is db name
  11. if err != nil {
  12. }else{
  13. fmt.Println("Open ok")
  14. }
  15. }
  16. func main() {
  17. createTable()
  18. }
  19. func createTable() {
  20. prefix := "CREATE TABLE IF NOT EXISTS "
  21. sqlstr := prefix + "tb_people" + "(" + `
  22. id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  23. name varchar(64) NOT NULL,
  24. addr varchar(64) NOT NULL
  25. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 `
  26. fmt.Println(sqlstr)
  27. _, err := DB.Exec(sqlstr)
  28. if err != nil {
  29. fmt.Println(err)
  30. }
  31. }

       自测OK.

       不多说。

 

      

 

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载