golang 操作 mysql

daymenu · · 652 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

## 建立表t ```golang CREATE TABLE `t` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `t_modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `a` (`a`), KEY `t_modified` (`t_modified`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ``` ## golang 代码 查询一行 *功能点都放在注释中了* ```golang package main import ( "database/sql" // sql 官方接口 "fmt" "log" _ "github.com/go-sql-driver/mysql" // mysql 驱动 ) const ( dbName = "test" //定义数据库名 DB_Driver = "root:123456@tcp(127.0.0.1:3306)/" + dbName // 定义数据库连接字符串 ) // TModel 结构体定义 type TModel struct { Id int `db:"id"` A int `db:"a"` Modify string `db:"t_modified"` } // CreateDB 创建数据库连接 func CreateDB() (*sql.DB, error) { db, err := sql.Open("mysql", DB_Driver) if err != nil { return nil, err } return db, err } func main() { db, err := CreateDB() if err != nil { // 判断如果有错误输出并结束程序 log.Fatal(err) } defer db.Close() // 最后关闭连接 row := db.QueryRow("select * from t where id = ?;", 1) // 查询一行 if err != nil { log.Fatal(row) } var t TModel err = row.Scan( // 将数据填充到变量 &t.Id, &t.A, &t.Modify, ) if err != nil { log.Fatal(err) } // 输出填充后的数据 fmt.Printf("%#v\n", t) } ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

652 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传