golang连接mysql实现增删改查(CROD)

曾经终败给现在 2023-07-04 11:09 29阅读 0赞

1.安装mysql driver

  1. go get -v github.com/go-sql-driver/mysql

2.初始化sql

  1. use test;
  2. CREATE TABLE `t_test` (
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `name` varchar(32) DEFAULT NULL,
  5. `password` varchar(255) DEFAULT NULL,
  6. PRIMARY KEY (`id`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.连接数据库代码

  1. package db
  2. import (
  3. "database/sql"
  4. _ "github.com/go-sql-driver/mysql"
  5. )
  6. func Conn() (*sql.DB, error){
  7. // root:root@tcp(127.0.0.1:3306)/test 说明:
  8. // 第一个root是用户名
  9. // 第二个root是密码
  10. // 127.0.0.1:3306是地址
  11. // test 是数据库
  12. conn,err := sql.Open("mysql","root:root@tcp(127.0.0.1:3306)/test")
  13. return conn, err
  14. }

4.数据库增删改查代码

  1. package db
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. )
  6. // 表t_test映射
  7. type Ttest struct {
  8. Id int64
  9. Name string
  10. Password string
  11. }
  12. func err_handler(err error) {
  13. fmt.Printf("err_handler, error:%s\n", err.Error())
  14. panic(err.Error())
  15. }
  16. // 增
  17. func Insert() {
  18. conn, err := Conn()
  19. if err == nil {
  20. exec, err := conn.Exec("INSERT INTO t_test(name,password ) VALUES(?,?)", "小红", "123456")
  21. if err == nil {
  22. affected , _ := exec.RowsAffected()
  23. fmt.Print(affected)
  24. }
  25. if(err != nil){
  26. err_handler(err)
  27. }
  28. }
  29. }
  30. // 删
  31. func Delete() {
  32. conn, err := Conn()
  33. if(err != nil){
  34. err_handler(err)
  35. return
  36. }
  37. exec, err := conn.Exec("delete from t_test where name = ?", "小红")
  38. if(err != nil){
  39. err_handler(err)
  40. return
  41. }
  42. affected, err := exec.RowsAffected()
  43. if(err == nil){
  44. fmt.Print("删除行数:", affected)
  45. }
  46. }
  47. // 改
  48. func Update() {
  49. conn, err := Conn()
  50. if(err != nil){
  51. err_handler(err)
  52. return
  53. }
  54. exec, err := conn.Exec("update t_test set password = ? where name = ?", "11111", "小红")
  55. if(err == nil){
  56. affected, _ := exec.RowsAffected()
  57. fmt.Print("更新:", affected)
  58. }
  59. }
  60. // 查
  61. func Query() {
  62. conn, err := Conn()
  63. if err == nil {
  64. query, err := conn.Query("select id Id, name Name,password Password from t_test")
  65. if err != nil{
  66. err_handler(err)
  67. return
  68. }
  69. for query.Next(){
  70. var test Ttest
  71. err := query.Scan(&test.Id, &test.Name, &test.Password)
  72. if err != nil {
  73. err_handler(err)
  74. }
  75. test_json, err := json.Marshal(test)
  76. if(err == nil){
  77. fmt.Print("\n",string(test_json))
  78. }
  79. }
  80. }
  81. }

5.源码地址(在db文件夹下)

https://github.com/15902124763/go-base

发表评论

表情:
评论列表 (有 0 条评论,29人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PHP 7 连接MySQL增删

    在网上找了很多发现不怎么全,很多写到一半的,比如只是简单的连接数据库,而没有实现增删改查。我自己做一下总结。 查询 现在我在mysql中创建了school数据库,sch