```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. 数字图像处理经典论文汇总
  2. 通过scatter图寻找噪音
  3. 倒排文件索引(Inverted File Index)的建立
  4. IDEA git修改远程仓库地址
  5. api代理提取_了解提取API
  6. zabbix的b编译安装
  7. 动态与代理AOP--01【代理的作用与概念】【动态代理与AOP】
  8. 浅谈SQL Server 数据库的触发器
  9. Redmi K40系列要做旗舰“焊门员”:生死看淡 不服就焊
  10. 《社交网站界面设计(原书第2版)》——3.2 注册
  11. Java JDK 配置环境变量
  12. JQuery 实现表格数据行上移与下移效果
  13. 千万青年学子,双击电子版微积分
  14. 必成功的Hadoop环境搭建jdk环境搭建-超详细操作
  15. 书籍之 Head First HTML与CSS
  16. 小程序进阶-用户消息通知
  17. html颜色渐变配色方案,css网站推荐 渐变色配色方案 - 小俊学习网
  18. 全国省市县oracle,最新行政区划 省市区三级 街道乡镇四级 社区/村五级 每月更新(2021年4月版)...
  19. 2010考研数学二第(13)题——导数应用题
  20. meethigher-QQ发送卡片消息

热门文章

  1. 第二次作业-熟悉使用工具
  2. 从下面六张卡片中选出四张c语言,二年级数学下册期中试题
  3. 红旗桌面版本最新使用体例和功效解答100例-6
  4. 基因数据处理53之cs-bwamem集群版运行paird-end(1千万条100bp的reads)
  5. mysql季度第一天_mysql 获取季度的第一天 本月的第一天,本周的第一天sql语句(转)...
  6. Frameworks Detected: Web framework is detected. // Configure (24 minutes ago)解决办法
  7. PVB分散体的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. 一个获取ip地址的命令详解
  9. vue全局修改字体样式(修改成苹方)
  10. RegexBuddy、RegexMagic、EditPad官方绿色版