连接mysql(用sqlx库,不仅支持mysql,第一个参数还可以是别的数据库):

database, err := sqlx.Open("mysql", "root:password@tcp(127.0.0.1:3306)/dbname")

insert操作:

r, err := Db.Exec("insert into person(username, sex, email)values(?, ?, ?)", "stu001", "man", "stu01@qq.com")

package main

import (

"fmt"

_ "github.com/go-sql-driver/mysql"

"github.com/jmoiron/sqlx"

)

type Person struct {

UserId int `db:"user_id"`

Username string `db:"username"`

Sex string `db:"sex"`

Email string `db:"email"`

}

type Place struct {

Country string `db:"country"`

City string `db:"city"`

TelCode int `db:"telcode"`

}

//此处的db是线程安全的,实现了连接池

var Db *sqlx.DB

func init() {

database, err := sqlx.Open("mysql", "root:@tcp(127.0.0.1:3306)/test")

if err != nil {

fmt.Println("open mysql failed,", err)

return

}

Db = database

}

func main() {

r, err := Db.Exec("insert into person(username, sex, email)values(?, ?, ?)", "stu001", "man", "stu01@qq.com")

if err != nil {

fmt.Println("exec failed, ", err)

return

}

id, err := r.LastInsertId()

if err != nil {

fmt.Println("exec failed, ", err)

return

}

fmt.Println("insert succ:", id)

}

Select 操作:

err := Db.Select(&person, "select user_id, username, sex, email from person where user_id=?", 1)

package main

import (

"fmt"

_ "github.com/go-sql-driver/mysql"

"github.com/jmoiron/sqlx"

)

type Person struct {

UserId int `db:"user_id"`

Username string `db:"username"`

Sex string `db:"sex"`

Email string `db:"email"`

}

type Place struct {

Country string `db:"country"`

City string `db:"city"`

TelCode int `db:"telcode"`

}

var Db *sqlx.DB

func init() {

database, err := sqlx.Open("mysql", "root:@tcp(127.0.0.1:3306)/test")

if err != nil {

fmt.Println("open mysql failed,", err)

return

}

Db = database

}

func main() {

var person []Person

err := Db.Select(&person, "select user_id, username, sex, email from person where user_id=?", 1)

if err != nil {

fmt.Println("exec failed, ", err)

return

}

fmt.Println("select succ:", person)

}

update操作:

_, err := Db.Exec("update person set username=? where user_id=?", "stu0001", 1)

package main

import (

"fmt"

_ "github.com/go-sql-driver/mysql"

"github.com/jmoiron/sqlx"

)

type Person struct {

UserId int `db:"user_id"`

Username string `db:"username"`

Sex string `db:"sex"`

Email string `db:"email"`

}

type Place struct {

Country string `db:"country"`

City string `db:"city"`

TelCode int `db:"telcode"`

}

var Db *sqlx.DB

func init() {

database, err := sqlx.Open("mysql", "root:@tcp(127.0.0.1:3306)/test")

if err != nil {

fmt.Println("open mysql failed,", err)

return

}

Db = database

}

func main() {

_, err := Db.Exec("update person set username=? where user_id=?", "stu0001", 1)

if err != nil {

fmt.Println("exec failed, ", err)

return

}

}

Delete 操作:

_, err := Db.Exec("delete from person where user_id=?", 1)

package main

import (

"fmt"

_ "github.com/go-sql-driver/mysql"

"github.com/jmoiron/sqlx"

)

type Person struct {

UserId int `db:"user_id"`

Username string `db:"username"`

Sex string `db:"sex"`

Email string `db:"email"`

}

type Place struct {

Country string `db:"country"`

City string `db:"city"`

TelCode int `db:"telcode"`

}

var Db *sqlx.DB

func init() {

database, err := sqlx.Open("mysql", "root:@tcp(127.0.0.1:3306)/test")

if err != nil {

fmt.Println("open mysql failed,", err)

return

}

Db = database

}

func main() {

_, err := Db.Exec("delete from person where user_id=?", 1)

if err != nil {

fmt.Println("exec failed, ", err)

return

}

fmt.Println("delete succ")

}

jmoiron sqlx mysql_mysql 一(或其他数据库)相关推荐

  1. 高亚芳 mysql_MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析

    MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析 问题背景 我们在管理繁忙的 MySQL 数据库时,可能都有碰到 SYS CPU 高的经历:系统突然 SYS CPU 高起来, ...

  2. 写入mysql_MySQL写入缓冲区在数据库中的作用( Change Buffer )

    介绍另外一种重要的数据变更日志,也就是InnoDB change buffer.Change buffer的主要目的是将对二级索引的数据操作缓存下来,以此减少二级索引的随机IO,并达到操作合并的效果. ...

  3. c 命令导出数据到mysql_MySQL命令行导出数据库

    MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Serv ...

  4. webmin mysql_MySQL+Webmin轻松创建数据库

    有多少次你在考虑怎样设置数据库时感到为难?其实,如果你在Linux上使用MySQL,就不会有这种情况了.在Linux上使用Webmin图形界面来创建MySQL数据库将变得十分的简单. 在这篇文章中,我 ...

  5. angular mysql_mysql – 使用Angular进行数据库访问

    1-是否可以在角度框架中访问MySQL数据库? 问题不是角度特定但是是可能的,因为MySQL 5.7可以通过HTTP插入,更新和删除MySQL中的记录.像这样的东西 http://127.0.0.1: ...

  6. golang 读一行_与golang合作的第一步

    golang 读一行 If you like to understand know why we choose golang in the first as an alternative to pyt ...

  7. Go 学习笔记(56)— Go 第三方库 sqlx (操作数据库)

    1. 安装数据库 在 Go 标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,以下两种选择我们都可以进行操作,在本文中选择 sqlx . 第三方库 MySQL 驱动库: go-sql ...

  8. Go语言sqlx库操作PostgreSQL数据库增删改查

    0. 引用 sqlx地址:https://github.com/jmoiron/sqlx PostgreSQL官网:https://www.postgresql.org/ 1. PostgreSQL安 ...

  9. mysql用大白话解释_大白话 golang 教程-22-关系型数据库访问

    go 原生提供了对数据库的支持,就是 database/sql 包,对关系型的数据库进行了通用的抽象,轻量.面向行的接口,所以使用这个包还需要下载对相应的数据库驱动,比如 mysql 的驱动包 git ...

最新文章

  1. [认证授权] 1.OAuth2授权
  2. 支付接入开发的陷阱有多深?
  3. Parallels高危漏洞的奇葩修复指南
  4. c#中的Form.Show和Form.ShowDialog的区别
  5. [MEGA DEAL] Ultimate Java开发和认证指南(59%折扣)
  6. BROCADE 300和MD3200扩展柜FC SAN,截图
  7. 【本人秃顶程序员】深入理解Java——ConcurrentHashMap源码的分析(JDK1.8)
  8. Java学习笔记13--比较器(Comparable、Comparator)
  9. Lumen开发:lumen源码解读之初始化(5)——注册(register)与启动(boot)
  10. 【Linux】自主实现my_sleep【转】
  11. eclipse如何删除空行
  12. 未公开接口主要指以下哪几类_办公家具配套主要有哪些家具-GAVEE家维依为您解答...
  13. 2022年JDK-8下载方法
  14. 【前端三剑客一】 HTML
  15. 计算机左侧没有桌面菜单栏,我的电脑左侧工具栏忽然不见了
  16. 让Y40上的MAC启动更快
  17. 2020-8-25实训总结
  18. onvif 模拟摄像头_ONVIF 设备发现(网络摄像头)——实例笔记
  19. QMediaPlayer 播放视频(MP4、MP3...)
  20. 科技云报道:AI写小说、绘画、剪视频,生成式AI更火了!

热门文章

  1. 李开复:多次失败后,我总结出最优秀创业者的4个特点
  2. 在Linux系统上安装Spring boot应用
  3. python实现JWT
  4. Mysql事物隔离级别
  5. 5817. 【NOIP提高A组模拟2018.8.15】 抄代码
  6. C# WPF 利用NPOI读写Excel文件
  7. OpenGL第六节:加载png图片
  8. 数据库(.udl)简单测试连接
  9. Magento 获取分类的父分类和子分类
  10. 没有编辑器时,使用echo更换源