Go语言实现MySQL连接

字号+ 编辑: IT男在阿里 修订: 种花家 来源: 利志分享 2023-09-11 我要说两句(0)

用代码举例说明Go语言实现MySQL连接的方法。

使用MySQL Go Driver可以轻松地连接到MySQL数据库,并执行SQL查询和更新操作。一般情况下都使用Go语言的标准库中的database/SQL包来实现MySQL连接,以及使用Go语言的第三方库来实现MySQL连接。

代码如下:

package main

import (
    "crypto/md5"  
    "database/sql"  
    "encoding/hex"  
    "fmt"  
    // 新手都会被这个_所迷惑,其实这个就是Go设计的巧妙之处,
    // 我们在变量赋值的时候经常看到这个符号,它是用来忽略变量赋值的占位符,那么包引入用到这个符号也是相似的作用,
    // 这儿使用_的意思是引入后面的包名而不直接使用这个包中定义的函数,变量等资源。  
    _ "github.com/go-sql-driver/mysql"  
    "time"  
)

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

func main() {
    //dsn 数据源名称  
    //user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname?charset=utf8mb4,utf8  
  
    db, err := sql.Open("mysql", "root:zengzhihai@tcp(127.0.0.1:3306)/go_test?charset=utf8")
    checkErr(err)

    /**
    * CREATE TABLE `test_go` (
          `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
        name varchar(30) not null comment 'username',
        password char(32) not null comment 'password',
        other  varchar(30) not null comment 'username',
        `ctime` timestamp default current_timestamp comment '创建时间',
        `utime` timestamp default '00-00-00 00:00:00' comment '修改时间',
        PRIMARY KEY (`id`)
       ) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment 'test';
    *
    */

    //插入数据
    stmt, err := db.Prepare("insert test_go set name = ?,password = ?,other = ?,ctime = ?,utime = ?")
    checkErr(err)

    // 标准格式化时间
    ctime := time.Now().Format("2006-01-02 15:04:05")
    pwd := []byte("test")
    // 密码md5加密
    p := md5.Sum(pwd)

    // 执行插入
    res, err := stmt.Exec("test1", hex.EncodeToString(p[:]), "test", ctime, ctime)
    checkErr(err)

    // 获取最新插入的insertid
    id, err := res.LastInsertId()
    checkErr(err)

    fmt.Println(id)

    // 查询数据
    rows, err := db.Query("SELECT * FROM test_go")
    checkErr(err)

    for rows.Next() {
        var id int
        var name string
        var password string
        var other string
        var ctime string
        var utime string
        err = rows.Scan(&id, &name, &password, &other, &ctime, &utime)
        checkErr(err)
        // 查询打印结果集
        fmt.Println(id)
        fmt.Println(name)
        fmt.Println(password)
        fmt.Println(other)
        fmt.Println(ctime)
        fmt.Println(utime)
    }
}

阅完此文,您的感想如何?
  • 有用

    1

  • 没用

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • GO语言GORM如何更新字段

  • gorm如何创建记录与模型定义需要注意什么

  • gorm一般查询与高级查询

  • GORM时间戳跟踪及CURD(增删改查)

我要说说
网上宾友点评