iris(golang)连接mysql数据库

连接mysql数据库

安装依赖

go get github.com/go-sql-driver/mysql
func LinkMySQL(){DB,_ := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/webgo_accout")//设置数据库最大连接数DB.SetConnMaxLifetime(100)//设置上数据库最大闲置连接数DB.SetMaxIdleConns(10)//验证连接if err := DB.Ping(); err != nil {fmt.Println("open database fail")return}fmt.Println("connnect success")
}

查询表文件(多个文件)

create database webgo_accout;use webgo_accout;create table users(`uid` bigint not null AUTO_INCREMENT primary key,
`accout` varchar(255) not null,
`password` varchar(255) not null,
`username` varchar(255) not null default '用户名1'
);insert into users(`accout`,`password`,`username`) values ('admin','admin','admin');#测试是否是数组显示添加的数据,可以不写
insert into users(`accout`,`password`,`username`) values ('test','test','test');
//定义结构体
type User struct{Uid int `json:"uid"`Accout string `json:"accout"`PassWord string `json:"password"`UserName string `json:"username"`
}
//查询方法
func MySQLFindAll() []User{var user User //结构体数据users := []User{} //结构体数组DB,_ := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/webgo_accout") //mysql数据库连接rows,err := DB.Query("select * from users") //sql查询语句if err != nil {fmt.Println("select error",err)}for rows.Next() {//添加数据rows.Scan(&user.Uid,&user.Accout,&user.PassWord,&user.UserName)//查看数据是否添加fmt.Printf("uid:%d\n",user.Uid)fmt.Printf("accout:%s\n",user.Accout)users = append(users,user) //添加数据,结构: 结构体数组1 = append(结构体数组1,数据)}defer rows.Close()return users
}

iris与数据库进行连接显示

注意,这个是不同包下的文件

  • 连接数据库部分
  • 需要go mod init link添加go.mod
  • go get github.com/go-sql-driver/mysql也是在此文件夹下添加,会生成go.sum
package linkimport ("fmt""database/sql"_ "github.com/go-sql-driver/mysql"
)func LinkMySQL(){DB,_ := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/webgo_accout")//设置数据库最大连接数DB.SetConnMaxLifetime(100)//设置上数据库最大闲置连接数DB.SetMaxIdleConns(10)//验证连接if err := DB.Ping(); err != nil {fmt.Println("open database fail")return}fmt.Println("connnect success")
}type User struct{Uid int `json:"uid"`Accout string `json:"accout"`PassWord string `json:"password"`UserName string `json:"username"`
}
func MySQLFindAll() []User{var user Userusers := []User{}DB,_ := sql.Open("mysql","root:123456@tcp(127.0.0.1:3306)/webgo_accout")rows,err := DB.Query("select * from users")if err != nil {fmt.Println("select error",err)}for rows.Next() {rows.Scan(&user.Uid,&user.Accout,&user.PassWord,&user.UserName)fmt.Printf("uid:%d\n",user.Uid)fmt.Printf("accout:%s\n",user.Accout)users = append(users,user)}defer rows.Close()return users
}func LinkMongo(){fmt.Print("测试:你好")
}
  • iris部分

main主包下的go.mod

module accoutgo 1.21.0require (//...(go get xxx 自行添加的)
)require (com.chentianyu.learn/link v1.0.0
)replace (com.chentianyu.learn/link => ./link
)
package mainimport ("github.com/kataras/iris/v12""com.chentianyu.learn/link"
)func linkMy(){link.LinkMySQL()
}func main() {app := iris.New()linkMy() //连接数据库//查询数据库中的数据api(测试,正式要换成Post)  http://localhost:8089/mysql_findapp.Get("/mysql_find",func(ctx iris.Context){user1 := link.MySQLFindAll()ctx.JSON(user1)})//首页,根目录: http://localhost:8089/app.Get("/",func(ctx iris.Context){ctx.Text("welcome this is accout api")})//设置端口app.Listen(":8089")
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#练习题-构造函数

文章目录 前言题目习题1运行示例 习题2运行示例 参考答案习题1习题2 其他文章 前言 本篇文章的题目为C#的基础练习题,构造函数部分。做这些习题之前,你需要确保已经学习了构造函数的知识。 本篇文章可以用来在学完构造函数后加深印象,也可以…

探馆天津车展 近距离感受“极致性能王”远航汽车

近年来,新能源汽车产业发展迅猛。得益于新能源车型在成本控制、品质、安全性等多方面的出色表现,消费者对新能源汽车的需求一直呈现刚性。2023年,虽然新能源汽车已经进入无补贴时代,但消费者对新能源汽车的需求依旧有增无减&#…

k8s安全机制

安全机制 一、机制说明二、认证(Authentication)HTTP Token 认证HTTP Base 认证HTTPS 证书认证(最严格) 三、鉴权(Authorization)角色角色绑定主体(subject)Role and ClusterRoleRol…

axios的get请求时数组参数没有下标

开发新项目过程中 发现get请求时 数组参数没有下标 这样肯定是不行的 后端接口需要数组[0]: 7 数组[1]:4这样的数据 原因是因为在请求拦截器没有处理需要的参数 解决方法 在请求拦截器 处理一下参数 import axios, { AxiosError, AxiosInstance, AxiosRequestHeaders } fro…

vcf 文件如何修改染色体修改样本名称提取样本

大家好,我是邓飞。 对于vcf文件和plink文件是经常用的文件,对于基因型数据的处理,一般分为: 数据质控数据提取染色体修改名称样本修改名称 今天介绍一下vcf文件的三个处理方法: 1,染色体修改2&#xff…

log4qt集成使用

1. 下载: git clone https://github.com/MEONMedical/Log4Qt.git 测试发现使用master才能编译通过 2. 使用流程: log4qt集成使用_4qt.me-CSDN博客 3. 功能介绍 使用DailyFileAppender a. 支持0点新生成文件、支持程序启动生成带日期的日志文件 b…

python numpy库关键函数说明

python numpy库函数说明 np.argwhere()np.dtype()np.shape()np.zeros() np.argwhere() 输入参数是一个基本的逻辑表达式,输出检索结果的索引值。 >>> x np.arange(6).reshape(2,3) >>> x array([[0, 1, 2],[3, 4, 5]]) >>> np.argwhe…

4.Docker 搭建 redis6

1.下载redis docker pull redis:6.2.62.创建需要挂载的宿主机文件夹 mkdir -p /data/redis/conf mkdir -p /data/redis/data3.配置redis 切换到/data/redis/conf文件夹下,创建redis.conf,复制redis.conf配置文件内容到redis.conf文件中,然后按下键盘 …

竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的数学公式识别算法实现 该项目较为新颖,适合作为竞赛课题方向,学…

Spring AOP的失效场景

首先,Spring的AOP其实是通过动态代理实现的,所以,想要让AOP生效,前提必须是动态代理生效,并且可以调用到代理对象的方法什么情况下会不走代理对象的调用呢?首先就是类内部的调用,比如一些私有方…

详解一典型的反激式开关电源方案

理解一个单端反激式开关电源方案: 1、抛出问题: 如图,在某系统方案上看到下图所示的单端反激式开关电源方案。 2、解析问题: 2.1、乍一看: 典型的AC-DC电路,考虑了安规及过压过流保护,如&am…

复旦管院启动科创战略,培养科技研发人才,引领未来发展!

今年夏天,600多位优秀的企业家成为复旦大学EMBA 2023级新生。在疫情结束后,他们选择百战归来再读书,重新回到久违的课堂,共同探索科创大时代下企业的商业本质,开启新的学习与人生旅程。复旦大学管理学院院长陆雄文教授…

java spring boot 数据库密码解密

密码是我们在开发应用程序时经常需要使用的敏感信息之一。为了保护密码的安全性,我们通常会将其加密后存储在配置文件中。在 Java Spring Boot 中,我们可以使用加密库对密码进行加密,并在需要使用密码时进行解密。本文将介绍如何在 Java Spri…

大数据List去重

概述 两个超大List集合去重,时间最短的方式去实现。 详细 MaxList模块主要是对Java集合大数据去重的相关介绍。 背景: 最近在项目中遇到了List集合中的数据要去重,大概一个2500万的数据,开始存储在List中,需要跟一个2万的List去…

PTE考试预览

目录 pte评分机制是对比 不同水平的人之后跟你匹配 前两次 两个听力题没有写 咯噔一下 无源65分 Headset Check 调试耳机听筒 Microphone zhigeiCheck 调试麦克风 麦克风测试话语 老师说她放在鼻梁骨那里声音很好 自我介绍 读完之后 ,立马点next&#xf…

python中pytorch的广播机制——Broadcasting

广播机制 numpy 在算术运算期间采用“广播”来处理具有不同形状的 array ,即将较小的阵列在较大的阵列上“广播”,以便它们具有兼容的形状。Broadcasting是一种没有copy数据的expand 不过两个维度不相同,在前面插入维度1扩张维度1到相同的维…

电脑出现msvcp110.dll丢失的解决方法,快速解决msvcp110.dll丢失

电脑中经常会出现msvcp110.dll文件丢失的情况,所以如果电脑中缺失msvcp110.dll文件会让大家很苦恼,那么msvcp110.dll丢失有什么解决办法呢?今天就给大家介绍几种msvcp110.dll丢失的解决办法。 一.msvcp110.dll常出现的问题 1.当您尝试打开某…

Kafka集群架构设计原理详解

从 Zookeeper 数据理解 Kafka 集群工作机制 这一部分主要是理解 Kafka 的服务端重要原理。但是 Kafka 为了保证高吞吐,高性能,高可扩展的三高架构,很多具体设计都是相当复杂的。如果直接跳进去学习研究,很快就会晕头转向。所以&am…

使用GitLab CI/CD 定时运行Playwright自动化测试用例

创建项目并上传到GitLab npm init playwright@latest test-playwright # 一路enter cd test-playwright # 运行测试用例 npx playwright test常用指令 # Runs the end-to-end tests. npx playwright test# Starts the interactive UI mode. npx playwright