Gin 协程mysql客户端

server/2024/10/23 11:54:18/

一、Gin框架 mysql配置

这里选择yaml文件配置

二、配置读取 viper

读取yaml文件中对应配置

三、mysql 的协程客户端

文件位置

package databaseimport ("database/sql""fmt""github.com/spf13/viper""log""net/http""sync""github.com/gin-gonic/gin"_ "github.com/go-sql-driver/mysql"
)var Db *sql.DB
var once sync.Oncefunc initDB() {var err errorDBUser := viper.GetString("database.username")DBPwd := viper.GetString("database.password")DBHost := viper.GetString("database.host")DBPort := viper.GetString("database.port")DBName := viper.GetString("database.name")//"username:password@tcp(127.0.0.1:3306)/dbname"dsn := DBUser + ":" + DBPwd + "@tcp(" + DBHost + ":" + DBPort + ")/" + DBNameDb, err = sql.Open("mysql", dsn)if err != nil {log.Fatal(err)}// 设置连接池参数(可选)Db.SetMaxOpenConns(10)Db.SetMaxIdleConns(5)// 验证连接是否有效if err = Db.Ping(); err != nil {log.Fatal(err)}
}func queryDB(wg *sync.WaitGroup, id int) {defer wg.Done()var name stringerr := Db.QueryRow("SELECT name FROM crm_user WHERE id=?", id).Scan(&name)if err != nil {log.Printf("Error querying database for id %d: %v", id, err)return}fmt.Printf("Queried name for id %d: %s\n", id, name)
}

这样就完成了,访问情况如下


http://www.ppmy.cn/server/134163.html

相关文章

BIMBase构思渲染,一个强大的免费渲染插件

最近设计圈的小伙伴们都在热议AI出图的魔力 试想一下 假如你只剩一两个小时就要交图/方案阶段性汇报 还要用V-Ray/Blender辛辛苦苦渲染一整天吗😣 借助AI工具 设计师可以将更多的时间与精力放在创作构思上 而不是埋头于画图或等待渲染效果图 同时避免了因电脑…

基于PHP+MySQL+Vue的网上订餐系统

摘要 本文介绍了一个基于PHPMySQLVue技术的网上订餐系统。该系统旨在为用户提供便捷的在线订餐服务,同时提高餐厅的运营效率。系统后端采用PHP语言开发,利用MySQL数据库进行数据存储与管理,实现了用户注册登录、菜品浏览、购物车管理、订单提…

详解mac系统通过brew安装mongodb与使用

本文目录 一、通过brew安装MongoDB二、mongodb使用示例1、启动数据库2、创建/删除数据库3、创建/删除集合 三、MongoDB基本概念1)数据库 (database)2)集合 (collection)3) 文档(document)4)mong…

Github 2024-10-20 php开源项目日报Top10

根据Github Trendings的统计,今日(2024-10-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Blade项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次…

mysql 09 独立表空间结构

表空间中的页实在是太多了,为了更好的管理这些页面,设计 InnoDB 的大叔们提出了 区 (英文名: extent )的概念。对于16KB的页来说,连续的64个页就是一个 区 ,也就是说一个区默认占用1MB空间大小。…

Python数值计算(28)——理查森外推法

1. 基础知识 理查森外推法( Richardson extrapolation)是一种提高某些数值过程精度的简单方法,在数值方法中广泛应用。 理查森外推法的基本思想是通过对原函数进行多次求导,并在每一步求导的基础上进行线性组合,得到一个新的函数&#xff0c…

蓝队宝典【漏洞篇】:应对漏洞打点攻击,强化目标重点防护策略

前言 随着数字化转型的加速推进,企业信息安全面临前所未有的挑战。漏洞打点攻击作为一种高效隐蔽的攻击手段,严重威胁着企业的信息安全。下文所述的防护策略旨在帮助企业更好地应对这一挑战,进一步加固信息安全防线。 01 攻击目标深度分析与…

小红书Android面试题汇总及参考答案

Handler 的原理是什么? Handler 在 Android 中主要用于在不同线程之间进行通信。它的核心原理涉及到几个关键元素:Message、MessageQueue 和 Looper。 Message 是用来在不同组件之间传递信息的载体,可以携带少量的数据和特定的标识。Handler 可以通过发送不同的 Message 来触…