iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Go语言中怎么利用CURD操作MySQL
  • 537
分享到

Go语言中怎么利用CURD操作MySQL

2024-04-02 19:04:59 537人浏览 泡泡鱼
摘要

Go语言中怎么利用CURD操作Mysql,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。创建好 Go 项目,需要引用驱动依赖:go 

Go语言中怎么利用CURD操作Mysql,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

创建好 Go 项目,需要引用驱动依赖:

go get -u GitHub.com/go-sql-driver/mysql

使用 MySQL 驱动:

func Open(driverName, dataSourceName string) (*DB, error)

Open 打开一个 dirverName 指定的数据库,dataSourceName 指定数据源,一般至少包括数据库文件名和其它连接必要的信息。

初始化连接

var db *sql.DB //声明一个全局的 db 变量  // 初始化 MySQL 函数  func initMySQL() (err error) {      dsn := "root:passWord@tcp(127.0.0.1:3306)/dbname"      db, err = sql.Open("mysql", dsn)      if err != nil {          return      }      err = db.Ping()      if err != nil {          return      }      return  }  func main() {      // 初始化 MySQL      err := initMySQL()      if err != nil {          panic(err)      }      defer db.Close()  }

初始化连接 MySQL 后需要借助 db.Ping 函数来判断连接是否成功。

SetMaxOpenConns

func (db *DB) SetMaxOpenConns(n int)

SetMaxOpenConns设置与数据库建立连接的最大数目。

如果 n 大于 0 且小于最大闲置连接数,会将最大闲置连接数减小到匹配最大开启连接数的限制。

如果 n <= 0,不会限制最大开启连接数,默认为0(无限制)。

SetMaxIdleConns

func (db *DB) SetMaxIdleConns(n int)

SetMaxIdleConns设置连接池中的最大闲置连接数。

如果 n 大于最大开启连接数,则新的最大闲置连接数会减小到匹配最大开启连接数的限制。

如果 n <= 0,不会保留闲置连接。

CURD

进行 CURD 操作,需要对数据库建立连接,同时有供操作的数据(数据库与数据表):

初始化数据

建立数据库 sql_demo

CREATE DATABASE sql_demo;  USE sql_demo;

创建数据表 user

CREATE TABLE `user` (      `id` BIGINT(20) NOT NULL AUTO_INCREMENT,      `name` VARCHAR(20) DEFAULT '',      `age` INT(11) DEFAULT '0',      PRIMARY KEY(`id`)  )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

查询 SELECT

便于接收数据,定义一个 user 结构体接收数据:

type user struct {      id   int      age  int      name string  }

查询一行数据

db.QueryRow() 执行一次查询,并期望返回最多一行结果(即 Row )。QueryRow 总是返回非 nil 的值,直到返回值的 Scan 方法被调用时,才会返回被延迟的错误。(如:未找到结果)

func (db *DB) QueryRow(query string, args ...interface{}) *Row

实例代码如下:

// 查询一行数据  func queryRowDemo() (u1 *user, err error) {      // 声明查询语句      sqlStr := "SELECT id,name,age FROM user WHERE id = ?"      // 声明一个 user 类型的变量      var u user      // 执行查询并且扫描至 u      err = db.QueryRow(sqlStr, 1).Scan(&u.id, &u.age, &u.name)      if err != nil {          return nil, err      }      u1 = &u      return  }  func main() {      // 初始化 MySQL      err := initMySQL()      if err != nil {          panic(err)      }      defer db.Close()      u1, err := queryRowDemo()      if err != nil {          fmt.Printf("err:%s", err)      }      fmt.Printf("id:%d, age:%d, name:%s\n", u1.id, u1.age, u1.name)  」

结果如下:

id:1, age:111, name:22

多行查询

db.Query()执行一次查询,返回多行结果(即 Rows ),一般用于执行 select 命令。参数 args 表示 query 中的占位参数。

func (db *DB) Query(query string, args ...interface{}) (*Rows, error)

实例代码如下:

// 查询多行数据  func queryMultiRowDemo() {      sqlStr := "SELECT id,name,age FROM user WHERE id > ?"      rows, err := db.Query(sqlStr, 0)      if err != nil {          fmt.Printf("query data failed,err:%s\n", err)          return      }      // 查询完数据后需要进行关闭数据库链接      defer rows.Close()        for rows.Next() {          var u user          err := rows.Scan(&u.id, &u.age, &u.name)          if err != nil {              fmt.Printf("scan data failed, err:%v\n", err)              return          }          fmt.Printf("id:%d name:%s age:%d\n", u.id, u.name, u.age)      }  }

执行结果:

id:1 name:111 age:22  id:3 name:张三 age:22

使用 rows.Next() 循环读取结果集中的数据。

增加数据 INSERT

增加、删除、更新操作均使用 Exec 方法。

func (db *DB) Exec(query string, args ...interface{}) (Result, error)

实例代码如下:

// 增加一行数据  func insertRowDemo() {      sqlStr := "INSERT INTO user(name, age) VALUES(?, ?)"      result, err := db.Exec(sqlStr, "小羽", 22)      if err != nil {          fmt.Printf("insert data failed, err:%v\n", err)          return      }      id, err := result.LastInsertId()      if err != nil {          fmt.Printf("get insert lastInsertId failed, err:%v\n", err)          return      }      fmt.Printf("insert success, id:%d\n", id)  }

执行结果:

insert success, id:4

更新数据 UPDATE

// 更新一组数据  func updateRowDemo() {      sqlStr := "UPDATE user SET age = ? WHERE id = ?"      result, err := db.Exec(sqlStr, 22, 1)      if err != nil {          fmt.Printf("update data failed, err:%v\n", err)          return      }      n, err := result.RowsAffected()      if err != nil {          fmt.Printf("get rowsaffected failed, err:%v\n", err)          return      }      fmt.Printf("update success, affected rows:%d\n", n)  }

删除数据 DELETE

// 删除一行数据  func deleteRowDemo() {      sqlStr := "DELETE FROM user WHERE id = ?"      result, err := db.Exec(sqlStr, 2)      if err != nil {          fmt.Printf("delete data failed, err:%d\n", err)          return      }      n, err := result.RowsAffected()      if err != nil {          fmt.Printf("get affected failed, err:%v\n", err)          return      }      fmt.Printf("delete success, affected rows:%d\n", n)  }

关于Go语言中怎么利用CURD操作MySQL问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: Go语言中怎么利用CURD操作MySQL

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

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

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

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

下载Word文档
猜你喜欢
  • Go语言中怎么利用CURD操作MySQL
    Go语言中怎么利用CURD操作MySQL,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。创建好 Go 项目,需要引用驱动依赖:go ...
    99+
    2024-04-02
  • GO语言中怎么实现Mysql数据库的CURD操作
    这期内容当中小编将会给大家带来有关GO语言中怎么实现Mysql数据库的CURD操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、先导入驱动包和增强版Mysql操作库Sqlxpackage m...
    99+
    2023-06-20
  • Go语言中怎么实现文件操作
    今天就跟大家聊聊有关Go语言中怎么实现文件操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。打开和关闭文件package main  import&nb...
    99+
    2023-06-15
  • go语言用什么操作系统
    Go语言支持包括FreeBSD、Linux、Solaris和Windows等的多种操作系统。Go语言是跨平台、跨操作系统的语言。由于其模块化设计和模块化,即代码被编译并转换为尽可能小的二进制形式,因此,Go语言不需要依赖性;它的代码可以在任...
    99+
    2023-05-14
    go语言
  • 使用GO语言实现Mysql数据库CURD的简单示例
    目录〇、介绍驱动包和增强版Mysql操作库Sqlx一、先导入驱动包和增强版Mysql操作库Sqlx 二、insert操作 三、delete操作 四、update操作 五、s...
    99+
    2024-04-02
  • go语言中mysql怎么使用
    本篇内容介绍了“go语言中mysql怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!golang支持多种数据库MySQLMySQL是一...
    99+
    2023-07-04
  • Go语言操作MySQL的知识总结
    目录一、连接1.1 下载依赖1.2 使用mysql驱动1.3 初始化连接1.4 SetMaxOpenConns1.5 SetMaxIdleConns二、CRUD2.1 建库建表2.2 查询2.3 单行查询2.4 多行查询...
    99+
    2024-04-02
  • 如何在Go语言中利用for循环实现翻转操作
    标题:Go语言中利用for循环实现翻转操作的方法 在Go语言中,通过使用for循环可以很方便地对数组、切片等数据结构进行翻转操作。在本文中,我们将介绍如何利用for循环来实现数组和切片...
    99+
    2024-04-02
  • Shell脚本中如何利用Go语言进行重定向操作?
    Shell脚本是Linux系统中非常常见的一种脚本语言,通过Shell脚本可以完成很多自动化的任务。而Go语言则是一门非常流行的编程语言,它具有高效、易用、安全等特点。那么,在Shell脚本中如何利用Go语言进行重定向操作呢? 一、She...
    99+
    2023-10-01
    重定向 数据类型 shell
  • Go语言学习之操作MYSQL实现CRUD
    目录1.介绍2.下载安装驱动2.1 安装驱动3.匿名导入4.连接数据库4.1 连接方法4.2 sql.DB作用4.3 sql.DB设计目标5.写操作(增、删、改)5.1 执行步骤5.2 代码示例6. 读操作(查询)6.1...
    99+
    2023-02-14
    Go语言操作MYSQL实现CRUD Go语言实现CRUD Go语言MYSQLCRUD
  • Go语言操作Excel利器之excelize类库详解
    目录前言Excelize简介安装导出 Excel 文档读取Excel文档小结前言 在开发中一些需求需要通过程序操作excel文档,例如导出excel、导入excel、向excel文档...
    99+
    2024-04-02
  • GO 语言中的对象操作在自然语言处理中有何作用?
    自然语言处理(NLP)是人工智能领域的一个重要研究方向,它旨在让计算机能够理解和处理人类自然语言。在NLP中,对象操作是一种重要的技术,它可以帮助我们对自然语言进行分析和处理。 GO 语言作为一门静态编译型语言,具有高效、简洁、安全等特点...
    99+
    2023-09-05
    自然语言处理 shell 对象
  • Go语言中如何利用NumPy库实现高效的重定向操作?
    在计算机编程中,重定向操作是指将程序的输出从标准输出流中重定向到其他位置。在Go语言中,我们可以使用NumPy库来实现高效的重定向操作。本文将介绍如何使用NumPy库来实现重定向操作,并且会穿插一些代码演示。 安装NumPy库 在使用...
    99+
    2023-09-04
    numy 重定向 对象
  • Go语言中的I/O操作详解
    Go语言是一种由Google开发的开源编程语言,其设计注重简洁、高效和并发性能。在Go语言中,I/O操作是非常常见且重要的一部分,本文将详细介绍Go语言中的I/O操作,包括文件读写、网...
    99+
    2024-04-02
  • 利用Go语言实现不同数据类型的输出操作
    标题:利用Go语言实现不同数据类型的输出操作 Go语言作为一种简洁、高效的编程语言,提供了丰富的标准库,能够方便地操作不同数据类型并进行输出。本文将介绍如何利用Go语言实现对不同数据类...
    99+
    2024-03-15
    go语言输出数据 数据类型输出 不同数据输出 go语言 标准库
  • 用Go语言实现操作符重载
    利用Go语言实现运算符重载的方法 在Go语言中,是不支持像C++或者Python那样直接重载运算符的。但是我们可以通过定义自定义类型和对应的方法来模拟实现运算符重载的功能。下面将介绍如...
    99+
    2024-02-24
    方法 go语言 运算符重载
  • Go语言中的IO操作及Flag包的用法
    一、格式化输入和输出 1.从终端获取用户的输入 fmt.Scanf 空格作为分隔符,占位符和格式化输出的一致 fmt.Scan 从终端获取用户的输入,存储在Scanln中的参数里,空...
    99+
    2024-04-02
  • 不同语言中字符串操作与Go语言字符串操作的差异
    go 语言字符串操作的特点:使用 utf-8 编码表示字符串用 + 运算符拼接字符串用 [] 操作符索引字符串用 [start:end] 语法切片字符串用 == 运算符比较字符串 字符...
    99+
    2024-04-13
    go语言 字符串操作 python c++
  • 怎么利用纯C语言对EXCEL进行读写操作
    本文小编为大家详细介绍“怎么利用纯C语言对EXCEL进行读写操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么利用纯C语言对EXCEL进行读写操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、写操作单纯...
    99+
    2023-07-02
  • 详解Go语言中的数据库操作
    目录原生SQL方式ORM方式数据库是应用开发中必须要掌握的技巧,通常在数据库开发过程中,会有两种不同的方式: 直接使用SQL语句,这种方式下,直接编写SQL,简单直观,但是可维护性较...
    99+
    2023-02-07
    Go语言数据库操作 Go语言数据库 Go 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作