go操作mysql示例

版权声明:本文为博主原创文章,欢迎大家讨论,未经博主允许不得转载. https://blog.csdn.net/u010398771/article/details/84376180

go访问mysql需要进行导包.就这里需要注意点.

import (
//mysql的驱动包
   _ "github.com/Go-SQL-Driver/MySQL"
   "database/sql"
   "fmt"
)

func checkErr(err error) {
   if err != nil {
      panic(err)
   }
}

/**
这玩意是写一行代码就是一个异常错误的检查,简直是脑壳进水了的设计..........
除了插入检查了异常,其他的都没有检查异常....好麻烦,以后自己用的时候需要自己再好好封装一遍
 */
func main() {

   //获取db链接,分别是数据库类型,   mysql的账号:密码@/数据库名
   db,err:=sql.Open("mysql","root:123@/vspmanager?charset=utf8")
   checkErr(err)
// 插入数据
   stmt, err :=db.Prepare("INSERT INTO `diag_info` (`diag_id`, `diag_name`, `diag_code`, `diag_alias_name`) VALUES (?, ?, ?, ?)")
   checkErr(err)
   res,err:=stmt.Exec(2,"zhaojun","110","无名")
   checkErr(err)
   id, err := res.LastInsertId()
   fmt.Println(id)



   // 更新数据
   stmt, err = db.Prepare("update diag_info set diag_name=? where diag_id=?")
   res, err = stmt.Exec("zhaojun哈哈哈",1)
   affect, err :=res.RowsAffected()
   fmt.Println(affect)

   // 查询数据
   rows, err := db.Query("SELECT * FROM diag_info limit 10")
   for rows.Next() {
      var id int
      var diag_name string
      var diag_code string
      var diag_alias_name string
      err = rows.Scan(&id, &diag_name, &diag_code, &diag_alias_name)
      fmt.Println(id)
      fmt.Println(diag_name)
      fmt.Println(diag_code)
      fmt.Println(diag_alias_name)
   }

   // 删除数据
   stmt, err = db.Prepare("delete from diag_info where diag_id=?")
   res, err = stmt.Exec(1)
   affect, err = res.RowsAffected()
   fmt.Println(affect)
   db.Close()
   
}

其实没啥难的.就是这种原生的操作方式很累,每一步都需要进行异常的检查,我是偷懒所以去掉了.

以后真正的使用的时候必然是要再封装一遍的.

好了,go的学习就暂时先到这里了,暂时不再继续深入下去了,因为现在的实际业务场景里也没有用到的了,等什么时候用到了再继续深入的学习了.还是继续学习java的东西喽.

我练习的go  的 github 的代码库是:

https://github.com/changhe626/gogogo.git

https://github.com/changhe626/go-web.git

猜你喜欢

转载自blog.csdn.net/u010398771/article/details/84376180