当前位置: 首页 > news >正文

golang mysql

驱动

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

使用到的方法

func sql.Open(driverName string, dataSourceName string) (*sql.DB, error) func (*sql.DB).Prepare(query string) (*sql.Stmt, error)//使用DB.Prepare预编译并使用参数化查询,对预编译的SQL语句进行缓存,省去了每次解析优化该SQL语句的过程
func (*sql.Stmt).Query(args ...any) (*sql.Rows, error)func (*sql.DB).Query(query string, args ...any) (*sql.Rows, error)func (*sql.Rows).Next() bool
func (*sql.Rows).Scan(dest ...any) error

单行查询

package mainimport ("database/sql""fmt""time"_ "github.com/go-sql-driver/mysql"
)var db60 *sql.DB //数据库连接和交互的类型,可以理解为句柄func init() { constr := "otoyix:otoyix@tcp(192.168.0.60:3306)/test1"var err errordb60, err = sql.Open("mysql", constr) //建立与数据库的链接if err != nil {fmt.Printf("err: %v\n", err)}db60.SetConnMaxLifetime(time.Second * 60) //超时时间60sdb60.SetMaxOpenConns(0)                   //最大链接数,0为无限制db60.SetMaxIdleConns(10)                  //设置空闲链接数// return db60
}type Student struct {id        intname      stringage       intbirthdate string
}func main() {row := db60.QueryRow("select * from student where id > ? limit ?", 0, 1) //返回结果行student := Student{}err := row.Scan(&student.id, &student.name, &student.age, &student.birthdate)if err != nil {fmt.Printf("err: %v\n", err)}fmt.Printf("student: %v\n", student)}

多行查询 - 预编译-参数化

package mainimport ("database/sql""fmt""time"_ "github.com/go-sql-driver/mysql"
)var db60 *sql.DB //数据库连接和交互的类型,可以理解为句柄func init() { constr := "otoyix:otoyix@tcp(192.168.0.60:3306)/test1"var err errordb60, err = sql.Open("mysql", constr) //建立与数据库的链接if err != nil {fmt.Printf("err: %v\n", err)}db60.SetConnMaxLifetime(time.Second * 60) //超时时间60sdb60.SetMaxOpenConns(0)                   //最大链接数,0为无限制db60.SetMaxIdleConns(10)                  //设置空闲链接数// return db60
}type Student struct {id        intname      stringage       intbirthdate string
}func main() {stmt, err := db60.Prepare("select * from student where id > ? limit ?") if err != nil {fmt.Printf("err: %v\n", err)}rows, err := stmt.Query(0, 2)if err != nil {fmt.Printf("err: %v\n", err)}student := Student{}for rows.Next() {err = rows.Scan(&student.id, &student.name, &student.age, &student.birthdate)if err != nil {panic(err)}fmt.Printf("student: %v\n", student)}}

非查询

源代码

func (db *DB) Exec(query string, args ...any) (Result, error)type Result interface {// 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() (int64, error)// RowsAffected returns the number of rows affected by an// update, insert, or delete. Not every database or database// driver may support this.RowsAffected() (int64, error)
}

实现

	Result, err := db60.Exec("delete from student where id >1")fmt.Println(Result.RowsAffected())//返回受影响的行 与err

--------------end

相关文章:

golang mysql

驱动 "github.com/go-sql-driver/mysql"使用到的方法 func sql.Open(driverName string, dataSourceName string) (*sql.DB, error) func (*sql.DB).Prepare(query string) (*sql.Stmt, error)//使用DB.Prepare预编译并使用参数化查询,对预编译的SQL语句…...

uniapp使用echarts

uniapp使用echarts 1.下载资源包2.引入资源包3.代码示例注意事项 1.下载资源包 https://echarts.apache.org/zh/download.html 2.引入资源包 将资源包放入项目内 3.代码示例 <template><div style"width:100%;height:500rpx" id"line" ref&…...

Python命令模式介绍、使用

一、Python命令模式介绍 Python命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许将请求或操作封装在对象中&#xff0c;并将其作为参数传递给调用对象&#xff0c;以在不同的环境中执行相同的请求或操作。 功能&#xff1a; 将请求或…...

#typescript 使用file-saver模块#

场景&#xff1a;前端使用file-saver模块做导出文档的时候&#xff0c;出现两个错误 1&#xff1a;npm run build 提示找不到模块&#xff0c;如图 解决方法&#xff1a; 先卸载&#xff0c;不管是否安装都先要卸载 ,然后安装&#xff1a; npm uninstall file-saver npm…...

移动端适配布局rem和vw

在日益发展的移动互联网时代&#xff0c;作为前端开发者&#xff0c;我们必须了解和掌握各种移动端显示效果的适配技术。在众多适配方案中&#xff0c;使用rem和vw进行布局是当前最为流行和普遍使用的两种技术。通过合理运用这两种技术&#xff0c;我们可以让我们的网页在不同尺…...

【Java基础教程】(四十八)集合体系篇 · 上:全面解析 Collection、List、Set常用子接口及集合元素迭代遍历方式~【文末送书】

Java基础教程之集合体系 上 &#x1f539;本章学习目标1️⃣ 类集框架介绍2️⃣ 单列集合顶层接口&#xff1a;Collection3️⃣ List 子接口3.1 ArrayList 类&#x1f50d; 数组&#xff08;Array&#xff09;与列表&#xff08;ArrayList&#xff09;有什么区别?3.2 LinkedL…...

什么是 DNS ANAME 解析?

本人使用谷歌搜索了简中互联网&#xff0c;完全没有找到任何有关 ANAME 的文章……本文该不会是头一份吧 相信大家对于 DNS 的解析方式都不陌生&#xff0c;常见的有 A、CNAME、MX、TXT 记录等等。其中&#xff0c;网站常用的是 A 记录和 CNAME 记录&#xff1a;A 记录用于将域…...

Neo4j 集群和负载均衡

Neo4j 集群和负载均衡 Neo4j是当前最流行的开源图DB。刚好读到了Neo4j的集群和负载均衡策略&#xff0c;记录一下。 1 集群 Neo4j 集群使用主从复制实现高可用性和水平读扩展。 1.1 复制 集群的写入都通过主节点协调完成的&#xff0c;数据先写入主机&#xff0c;再同步到…...

go web框架 gin-gonic源码解读01————Engine

go web框架 gin-gonic源码解读01————Engine gin-gonic是go语言开发的轻量级web框架&#xff0c;性能优异&#xff0c;代码简洁&#xff0c;功能强大。有很多值得学习的地方,最近准备把这段时间学习gin的知识点&#xff0c;通过engine&#xff0c;context&#xff0c;router…...

windows版docker部署springcloud项目

材料&#xff1a; 1.windows版docker环境&#xff08;其他版教程可能道理一样但是比如文件后坠名上可能有差异&#xff09; 2.运行好的数据库容器&#xff08;实现教程&#xff09; 3.所有jar包 实现&#xff1a; 最后整好的文件夹结构图&#xff08;原工程文件机密&#xf…...

探索工程机械远程控制新纪元:Intewell-Hyper II震撼发布!

在当前的工程技术领域&#xff0c;远程控制技术以其卓越的效率和方便性&#xff0c;正受到越来越多的关注和运用。而在这个过程中&#xff0c;某机械集团以Intewell-HyperII操作系统为基础&#xff0c;打造出了具有前瞻性的工程机械远程控制器&#xff0c;为行业的发展提供了新…...

DM8 DSC集群实时主备搭建

1、环境准备 主库DSC集群公网ip&#xff1a;192.168.1.34/35 私有ip&#xff1a;192.168.10.134/135 备库ip&#xff1a;192.168.1.33 2、对DSC集群数据库全备 1)主库做全备 [dmdbadmdsc01 bin]$ disql sysdba/dameng123 BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSE…...

配置IPv4 over IPv6隧道示例

IPv4 over IPv6隧道&#xff1a; 在IPv4 Internet向IPv6 Internet过渡后期&#xff0c;IPv6网络被大量部署后&#xff0c;而IPv4网络只是散布在世界各地的一些孤岛。利用隧道技术可以在IPv6网络上创建隧道&#xff0c;从而实现IPv4孤岛的互联&#xff0c;IPv4孤岛能通过IPv6公…...

在中国区部署日志通2.0

前提条件 一个域名&#xff1a;使用此域名来访问日志通控制台提供aws iam 的ssl证书 &#xff0c;而且必须跟域名相关联具有四个子网&#xff08;两个公有子网和两个私有子网&#xff09;和NAT网关的VPC 步骤 1.创建ACM证书 1.1 请求公有证书 1.2 配置域名 1.3 新申请的证书记…...

centos下安装jdk

环境:centos7/openjdk-8u40-b25 openJDK页面 java二进制包下载页面 华为jdk镜像 1.下载安装包后上传到服务器上&#xff0c;运行命令解压到/opt/目录下 tar cxvf server-jre-8u271-linux-x64.tar.gz -C /opt/2.配置环境变量 vi /etc/profile source /etc/profile添加下面的…...

【HDFS】LocatedBlocks、LocatedBlock、LocatedStripedBlock、ExtendedBlock类分析

本文主要介绍如下内容: 1、 介绍标题中类的功能及相关字段 2、 与字段初始化相关的一些细节 一、ExtendedBlock类 在Block Pools之间唯一标识一个块。 直白点就是一个Block再加一个块池id。 块池的概念是HDFS联邦集群之后产生的,因为一台DataNode的主机可以作为多个HDFS集群…...

Oracle 19c 报ORA-704 ORA-01555故障处理---惜分飞

异常断电导致数据库无法启动,尝试对数据文件进行recover操作,报ORA-00283 ORA-00742 ORA-00312错误,由于redo写丢失无法正常应用 D:\check_db>sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on 星期日 7月 30 07:49:19 2023 Version 19.3.0.0.0 Copyrig…...

D356周赛复盘:滑动窗口+三元问题思路

文章目录 2798.满足目标工作时长的员工数目完整版 2799.统计完全子数组的数目&#xff08;滑动窗口&#xff09;思路完整版 2800.包含三个字符的最短字符串&#xff08;复用思路与三元问题思想&#xff09;思路复用减少字符串长度的思路为什么一次性操作两个字符串 完整版进一步…...

ETHERNET/IP 转ETHERCAT连接倍福和欧姆龙PLC的配置方法

ETHERNET/IP和ETHERCAT是两种不同的协议&#xff0c;它们在工业生产中都有广泛的应用。然而&#xff0c;由于协议不同&#xff0c;这两种设备之间无法通讯&#xff0c;这给工业生产带来了很大的麻烦。而捷米JM-EIP-ECAT网关应运而生&#xff0c;它能够连接到ETHERNET/IP总线和E…...

Git分布式版本控制工具和GitHub(一)--简介

一.Git概述 1.Git简介 【1】什么是Git? Git就是代码版本管理工具。 【2】为什么要使用Git &#xff08;1&#xff09;版本控制 写代码就是不断写BUG的过程&#xff08;当然我们是不会这么说的&#xff09;&#xff0c;很多时候你写了100行代码之后&#xff0c;突然醒悟&…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...