```go
package mainimport ("database/sql""fmt"//配置环境MySQL_ "github.com/go-sql-driver/mysql""log""math"
)
//在java中是声明类 但是go不是面向对象编程,所以它只是变量
type user struct {Id intName stringPwd stringCreatedAt string
}//声明sql连接  在java的jdbc远古mysql连接版本中差不太多
var db0 *sql.DBfunc main()  {//var us user//us.select2()//var us user//us.Name ="张三"//us.Pwd ="123"//us.CreatedAt ="321"//us.insert()//var us user//us.Id =7//us.Name="李四"//us.Pwd="111"//us.CreatedAt="222"//us.update()//掉方法必须是闲声明 而且声明类似于变量var us userus.Id =6us.del()
}/**删除操作*/
func (user user) del() {var err errordb0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")if err != nil {log.Fatal("数据库打开出现了问题:", err)return}db0.Ping()if err != nil {log.Fatal("数据库连接出现了问题:", err)return}rows, err := db0.Prepare("DELETE FROM user where id =?")res, err := rows.Exec(user.Id)if err !=nil{fmt.Println("出错了",res)return}
}/**修改数据操作*/
func (user user) update() {var err errordb0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1.155:3306)/golang?charset=utf8")if err != nil {log.Fatal("数据库打开出现了问题:", err)return}db0.Ping()if err != nil {log.Fatal("数据库连接出现了问题:", err)return}rows, err := db0.Prepare("UPDATE `user` SET `name` = ?, `pwd` = ?, `created_at` = ? WHERE `id` = ?")res, err := rows.Exec(user.Name,user.Pwd,user.CreatedAt,user.Id)if err !=nil{fmt.Println("出错了",res)return}
}/**insert 插入*/
func (user user) insert (){var err errordb0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")if err != nil {log.Fatal("数据库打开出现了问题:", err)return}db0.Ping()if err != nil {log.Fatal("数据库连接出现了问题:", err)return}rows, err := db0.Prepare("INSERT INTO `user` ( `name`, `pwd`, `created_at`) VALUES (?, ?, ?) ")res, err := rows.Exec(user.Name,user.Pwd,user.CreatedAt)if err !=nil{fmt.Println("出错了",res)return}
}/**查询使用实体类*/
func (user user) select2() {var err errordb0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")if err != nil {log.Fatal("数据库打开出现了问题:", err)return}db0.Ping()if err != nil {log.Fatal("数据库连接出现了问题:", err)return}rows, err := db0.Query("select id, name, pwd, created_at from user")//rows, err := db0.Query(sqlStr)if err !=nil{fmt.Println("出错了",err)return}//defer rows.Close()for rows.Next(){err = rows.Scan(&user.Id,&user.Name,&user.Pwd,&user.CreatedAt)checkErr(err)fmt.Println(user.Id)fmt.Println(user.Name)fmt.Println(user.Pwd)fmt.Println(user.CreatedAt)}}/**查询不使用实体类*/
func queryMultiRowDemo() {var err errordb0, err := sql.Open("mysql", "root:12345678@tcp(127.0.0.1:3306)/golang?charset=utf8")if err != nil {log.Fatal("数据库打开出现了问题:", err)return}db0.Ping()if err != nil {log.Fatal("数据库连接出现了问题:", err)return}rows, err := db0.Query("select id, name, pwd, created_at from user")//rows, err := db0.Query(sqlStr)if err !=nil{fmt.Println("出错了",err)return}//defer rows.Close()for rows.Next(){var id intvar name stringvar pwd stringvar createdat stringerr = rows.Scan(&id,&name,&pwd,&createdat)checkErr(err)fmt.Println(id)fmt.Println(name)fmt.Println(pwd)fmt.Println(createdat)}}/**报错信息*/
func checkErr(err error) {if err != nil {panic(err)}
}

go语言连接数据库的一些方法相关推荐

  1. JDBC(Java语言连接数据库)

    JDBC(Java语言连接数据库) JDBC本质 整体结构 基层实现过程(即用记事本而不是idea) 第一种实现方式 第二种实现方式 乐观锁和悲观锁 乐观锁 悲观锁 JDBC本质 整体结构 基层实现过 ...

  2. 简单介绍C语言使用四种方法初始化结构体

    这篇文章说明了什么是结构体,介绍了结构体的概念和使用优点,在C语言中如何使用和初始化结构体方法,通过详细的代码展开进行说明,希望该篇文章对你有所帮助 什么是结构体 在实际问题中,一组数据往往有很多种不 ...

  3. C语言中常用计时方法总结

    转自:http://blog.csdn.net/fz_ywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:time_t ...

  4. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...

  5. Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法

    Windows Server 2012 R2/2016/2019无法安装.NET Framework 3.5.1或语言包的解决方法 参考文章: (1)Windows Server 2012 R2/20 ...

  6. Xamarin XAML语言教程通过ProgressTo方法对进度条设置

    Xamarin XAML语言教程通过ProgressTo方法对进度条设置 在ProgressBar中定义了一个ProgressTo方法,此方法也可以用来对进度条当前的进行进行设置,ProgressTo ...

  7. Swift2.0语言教程之类的方法

    Swift2.0语言教程之类的方法 Swift2.0语言的方法 方法其实就是函数,只不过它被定义在了类中.在Swift中,根据被使用的方式不同,方法分为了实例方法和类型方法两种.这两种方法的定义也和O ...

  8. C语言程序设计:现代方法(第2版)第三章全部习题答案

    前言 本人在通过<C语言程序设计:现代方法(第2版)>自学C语言时,发现国内并没有该书完整的课后习题答案,所以就想把自己在学习过程中所做出的答案分享出来,以供大家参考.这些答案是本人自己解 ...

  9. c语言soket编程,C语言socket编程使用方法

    C语言socket编程使用方法 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.以 ...

最新文章

  1. Spark Worker启动源码
  2. 阿里招“AI鉴黄体验官”:日薪1000!网友:钱不钱无所谓,净化互联网人人有责!...
  3. 寻找数组中的重复数字(java,可执行程序)
  4. mysql单点故障_如何解决云服务商单点故障频发的问题?
  5. 深度学习和目标检测系列教程 17-300: 3 个类别面罩检测类别数据集训练yolov5s模型
  6. zookeeper安装包下载地址
  7. 前端学习(650):标识符 关键字 保留字
  8. pytorch报错RuntimeError: error in LoadLibraryA
  9. docker 容器端口访问不到_docker容器无法访问宿主机端口的解决
  10. 一篇文章为你深度解析HTTPS 协议 1
  11. 2021年中国宠物玩具与训练市场趋势报告、技术动态创新及2027年市场预测
  12. reset.css(样式重置)
  13. pyspark分类算法之多层感知机神经网络分类器模型实践【MLPClassifier】
  14. java基础总结06-常用api类-api概述及jdk常用分类
  15. android 最新微信红包,GitHub - lthis/WeChatLuckyMoney: 微信抢红包插件 for Android
  16. 中国近代史纲要 期末复习
  17. java EE 第十二周 web前端开发的周总结 (含思维导图)
  18. 安卓逆向-修改APK-战斗直接胜利
  19. go 极简后台管理-二次开发
  20. 如何登录设备(睿易篇)

热门文章

  1. VS2019无法打开源文件
  2. 最新版 Office 三国杀,体验式寻找最强电子表格
  3. DHT算法的一知半解
  4. 学习LabVIEW应看的几本书
  5. 网络篇 OSPF的路由器类型-42
  6. Linux-tar文件打包与压缩
  7. Wince下的手写输入法
  8. 比赛记录:ICME-2022 安全AI挑战者计划第九期:小样本商标检测挑战赛
  9. 文件夹图标修改器 v1.0.0.1 绿色
  10. Dancing Links中文版