iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >使用GO语言实现Mysql数据库CURD的简单示例
  • 371
分享到

使用GO语言实现Mysql数据库CURD的简单示例

2024-04-02 19:04:59 371人浏览 安东尼
摘要

目录〇、介绍驱动包和增强版Mysql操作库sqlx一、先导入驱动包和增强版mysql操作库Sqlx 二、insert操作 三、delete操作 四、update操作 五、s

〇、介绍驱动包和增强版Mysql操作库Sqlx

  • Go-mysql-driver是go语言标准库(SDK)database/sql的”加工产品“,质量有保障!
  • go-mysql-driver运行时间虽然比较长,但是内存使用较少。
  • go-mysql-driver实现了database/sql,即便不是mysql,是使用其他数据库,也能够使用该包。
  • go-mysql-driver接口设计得比较好,上手较快。
  • 对于Sqlx,它其实也是go语言标准库(SDK)database/sql的”加工产品“。
  • Sqlx也可以用于其他数据库
  • Sqlx包其实最大最大的优点是在查询方面,也就是使用select时优化得比较好。比原来的使用查询方便了不止一点。

一、先导入驱动包和增强版Mysql操作库Sqlx


package main
​
import (
    "fmt"
    //并不需要使用其api,只需要执行该包的init方法(加载MySQL是驱动程序)
    _ "GitHub.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)

此处需要导入导入mysql驱动包和增强版Mysql操作库Sqlx。
如果不清楚如何导入第三方包,请查看我的技术博客:手把手教你怎么使用Go语言第三方库。

二、insert操作


//执行insert操作
func main()  {
    //连接数据库
    //driverName:mysql,表示驱动器的名称是mysql也就上面"github.com/go-sql-driver/mysql"导入的驱动器。
    //dataSourceName:root:123456@tcp(localhost:3306)/mydb 账户名:密码@tcp(ip:端口)/数据库名称
    //sqlx.Open返回一个*sqlx.DB和错误。
    db, _ := sqlx.Open("mysql", "root:123456@tcp(localhost:3306)/mydb")
    defer db.Close()
    //执行增删改
    //query里面是sql语句。
    result, e := db.Exec("insert into person(name,age,rmb,gender,brithday) values(?,?,?,?,?);", "小扬", 21, 8888, true, 20000101)
    if e!=nil{
        fmt.Println("err=",e)
        return
    }
    // RowsAffected returns the number of rows affected by an
    // update, insert, or delete. Not every database or database
    // driver may support this.
    rowsAffected, _ := result.RowsAffected()
    // LastInsertId returns the integer generated by the database
    // in response to a command. Typically this will be from an
    // "auto increment" column when inserting a new row. Not all
    // databases support this feature, and the syntax of such
    // statements varies.
    lastInsertId, _ := result.LastInsertId()
    fmt.Println("受影响的行数=",rowsAffected)
    fmt.Println("最后一行的ID=",lastInsertId)
}

使用sqlx包的Open连接数据库。

driverName:mysql,表示驱动器的名称是mysql也就上面"github.com/go-sql-driver/mysql"导入的驱动器。
dataSourceName是root:123456@tcp(localhost:3306)/mydb 它的含义是 账户名:密码@tcp(ip:端口)/数据库名称。
sqlx.Open返回一个*sqlx.DB和错误。
然后执行db.Exec()操作。


result, e := db.Exec("insert into person(name,age,rmb,gender,brithday) values(?,?,?,?,?);", "小扬", 21, 8888, true, 20000101)

第一个参数是query语句。


rowsAffected, _ := result.RowsAffected()
lastInsertId, _ := result.LastInsertId()

RowsAffected()求受影响的行数。RowsAffected返回update, insert, or delete影响的行数。不是每一个数据库和数据库驱动可能支持这个。
LastInsertId()求插入的最后一行的ID。
LastInsertId返回数据库生成的最后一个ID。通常,这来自插入新行时的“自动递增”列。不是所有数据库都支持此功能。

三、delete操作


result, e := db.Exec("delete from person where name not like ?;", "%扬")

还是执行db.Exec(),第一个参数是delete语句

查看该操作是否执行成功。

成功!!!试一试吧!

四、update操作


result, e := db.Exec("update person set name = ? where id = ?;", "大扬", 1)

成功执行!

来看一看结果吧!

现在可以看到数据更新成功。将id为1的数据的name项更新为”大扬“。
这里两个?,后面就要有两个参数。

五、select操作


package main
​
import (
    "fmt"
    //并不需要使用其API,只需要执行该包的init方法(加载MySQL是驱动程序)
    _ "github.com/go-sql-driver/mysql"
    "github.com/jmoiron/sqlx"
)
​
type Person struct {
    // 对应name表字段
    Name string `db:"name"`
    // 对应age表字段
    Age int `db:"age"`
    // 对应rmb表字段
    Money float64 `db:"rmb"`
}
​
func main()  {
    db, _ := sqlx.Open("mysql", "root:123456@tcp(localhost:3306)/mydb")
    defer db.Close()
​
    //预定义Person切片用于接收查询结果
    var ps []Person
    //执行查询,得到Perosn对象的集合,丢入预定义的ps地址
    e := db.Select(&ps, "select name,age,rmb from person where name like ?;", "%扬")
    if e != nil{
        fmt.Println("err=",e)
    }
    fmt.Println("查询成功",ps)
}

Person结构体里面的属性对应数据库里面的字段。比如:


Age int `db:"age"`

表示Age对应表里面的字段age。


type Person struct {
 // 对应name表字段
 Name string `db:"name"`
 // 对应age表字段
 Age int `db:"age"`
 // 对应rmb表字段
 Money float64 `db:"rmb"`
}

var ps []Person

因为查询的结果可能为多条,所以使用Person切片。然后将查询结果放入ps中
提示:要使用ps的指针!


e := db.Select(&ps, "select name,age,rmb from person where name like ?;", "%扬")

下面我们来看看查询结果:


到此这篇关于使用GO语言实现Mysql数据库CURD的简单示例的文章就介绍到这了,更多相关GO语言Mysql数据库CURD内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: 使用GO语言实现Mysql数据库CURD的简单示例

本文链接: https://www.lsjlt.com/news/131911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用GO语言实现Mysql数据库CURD的简单示例
    目录〇、介绍驱动包和增强版Mysql操作库Sqlx一、先导入驱动包和增强版Mysql操作库Sqlx 二、insert操作 三、delete操作 四、update操作 五、s...
    99+
    2024-04-02
  • GO语言中怎么实现Mysql数据库的CURD操作
    这期内容当中小编将会给大家带来有关GO语言中怎么实现Mysql数据库的CURD操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、先导入驱动包和增强版Mysql操作库Sqlxpackage m...
    99+
    2023-06-20
  • mongodb数据库入门之CURD简单操作示例
    本文实例讲述了mongodb数据库入门之CURD简单操作。分享给大家供大家参考,具体如下: 查看所有数据库 show dbs; show databases; #有些版本可能不行 ...
    99+
    2024-04-02
  • go语言调用其他包中的函数简单示例
    目录需求步骤附:Go语言同一个包中不同文件之间函数调用总结需求 我们想在程序的入口main.go中调用service包下的user_service.go中的函数,该如何调用呢?示例...
    99+
    2023-01-13
    go 函数调用 go语言调用函数
  • go语言csrf库使用实现原理示例解析
    目录引言csrf小档案一、CSRF及其实现原理CSRF攻击示例二、如何预防三、CSRF包的使用及实现原理csrf包的安装基本使用使用net/http包启动的服务echo框架下使用cs...
    99+
    2024-04-02
  • 使用Go语言实现单链表数据结构
    对不起,我无法生成代码示例。请问有其他关于Go语言单链表数据结构的问题吗?我可以提供更多解释和指导。以上就是使用Go语言实现单链表数据结构的详细内容,更多请关注编程网其它相关文章! ...
    99+
    2024-04-02
  • Go简单实现协程池的实现示例
    目录MPG模型通道的特性首先就是进程、线程、协程讲解老三样。 进程: 本质上是一个独立执行的程序,进程是操作系统进行资源分配和调度的基本概念,操作系统进行资源分配和调度的一...
    99+
    2024-04-02
  • go语言中如何使用select的实现示例
    目录1.基本语法2.select语句的实际应用在golang语言中,select语句 就是用来监听和channel有关的IO操作,当IO操作发生时,触发相应的case动作。...
    99+
    2024-04-02
  • C语言实现堆的简单操作的示例代码
    目录一、堆的概念二、堆的实现三、堆的代码实现一、堆的概念 (1)定义 如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺...
    99+
    2022-11-13
    C语言实现堆 C语言 堆操作 C语言
  • 如何实现mysql的数据库简单回复
    这篇文章将为大家详细讲解有关如何实现mysql的数据库简单回复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 bin/mysql -uroot -hlocalhost ...
    99+
    2024-04-02
  • Go简单实现多租户数据库隔离
    目录多租户为什么需要多租户?数据隔离方式物理分离详细实现启动服务数据库配置多租户 在 SaaS 系统中多租户是一个很重要的架构,在服务上仅需运行一个软件实例就能够支持每个租户的功能,...
    99+
    2023-05-20
    Go 多租户隔离 Go 多租户
  • Go语言使用buffer读取文件的实现示例
    目录使用 bufio 包写入文件使用 bufio 包读取文件buffer 是缓冲器的意思,Go语言要实现缓冲读取需要使用到 bufio 包。bufio 包本身包装了 io.Reade...
    99+
    2023-05-14
    Go buffer读取文件 Go buffer读取
  • 如何使用MyBatis Plus实现数据库curd操作
    目录1.mp是什么2、mp入门2.1、curd2.2、自动填充3、乐观锁3.1、场景4、MP查询4.1、多个ID批量查询4.2、简单条件查询(Map)4.3、分页查询5、MP删除5....
    99+
    2024-04-02
  • 如何使用Go语言和Redis实现数据库备份
    如何使用Go语言和Redis实现数据库备份云计算时代,数据的备份和恢复已经成为每个应用程序开发者和系统管理员必备的技能之一。而在进行数据库备份时,选择合适的工具和方法可以大大简化操作,并提高备份的效率。本文将介绍如何使用Go语言和Redis...
    99+
    2023-10-27
    Go语言 redis 数据库备份
  • go语言操作es的实现示例
    目录Elasticsearch介绍Elasticsearch能做什么go语言操作es解决golang使用elastic连接elasticsearch时自动转换连接地址初始化数据创建查...
    99+
    2024-04-02
  • MySQL数据库单表查询的示例
    这篇文章主要介绍MySQL数据库单表查询的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 简单查询1.     Select语句Select [...
    99+
    2024-04-02
  • MySQL数据库中高阶SQL语句的使用示例
    这篇文章主要介绍了MySQL数据库中高阶SQL语句的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、准备工作1、安装MySQL数据...
    99+
    2024-04-02
  • Go语言中的基础数据类型使用实例
    目录前言基础数据类型整型有符号整型无符号整型特殊整型浮点型复数布尔值字符串字符串的转义符多行字符串常用的操作字符串的手段byte和rune类型修改字符串类型转换小结前言 任何语言都...
    99+
    2023-05-14
    Go 基础数据类型 Go 数据类型
  • C语言实现简单的贪吃蛇游戏的示例代码
    目录运行效果代码一个简单的贪吃蛇游戏本来代码就不多,在保证可读性的情况下,很容易就控制在100以内了。 运行效果 代码 #include <Windows.h> #in...
    99+
    2023-01-12
    C语言实现贪吃蛇游戏 C语言贪吃蛇游戏 C语言贪吃蛇
  • Python实现MySql数据库交互的示例
    目录一、使用mysql进行持久化存储二、安装MySql数据库和python库PyMySQL三、使用pymysql链接mysql数据库四、创建表五、插入数据六、后记一、使用MySql进行持久化存储 在任何应用中,都需要持久...
    99+
    2023-01-06
    PythonMySql数据库交互 PythonMySql交互
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作