兄弟连区块链培训Go语言之连接mysql
Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。
兄弟连Go语言+区块链培训课程共计22周学习时长,划分为9个学习阶段,即区块链主流语言-Go语言开发实战、区块链后端技术体系-Go语言高并发和服务器开发、Go开发区块链公链(区块链密码学、分布式编程、共识算法、基本概念,Golan公链开发)、eth与智能合约与DAPP开发、区块链分布式应用开发、区块链系统框架开发-超级账本与区块链3.0EOS、Go与区块链面试强化和高级企业级项目实战。
package main
// 导入sql包, 跟java.sql类似的
import "database/sql"
import _ "mysql"
import "encoding/json"
import "fmt"
// 定义一个结构体, 需要大写开头哦, 字段名也需要大写开头哦, 否则json模块会识别不了
// 结构体成员仅大写开头外界才能访问
type User struct {
User string `json:"user"`
Password string `json:"password"`
Host string `json:"host"`
}
// 一如既往的main方法
func main() {
// 格式有点怪, @tcp 是指网络协议(难道支持udp?), 然后是域名和端口
db, e := sql.Open("mysql", "root:pwd@tcp(localhost:3306)/mysql?charset=utf8")
if e != nil { //如果连接出错,e将不是nil的
fmt.Println("ERROR?")
return
}
// 提醒一句, 运行到这里, 并不代表数据库连接是完全OK的, 因为发送第一条SQL才会校验密码 !
_, e2 := db.Query("select 1")//生产环境去掉这句,不然会有内存泄漏
if e2 == nil {
fmt.Println("DB OK")
rows, e := db.Query("select user,password,host from mysql.user")
if e != nil {
fmt.Print("query error!!%v\n", e)
return
}
if rows == nil {
fmt.Println("Rows is nil")
return
}
for rows.Next() { //跟java的ResultSet一样,需要先next读取
user := new(User)
// rows支持Scan方法 可以通过GetColumns()来得到字段顺序
row_err := rows.Scan(&user.User,&user.Password, &user.Host)
if row_err != nil {
fmt.Println("Row error!!")
return
}
b, _ := json.Marshal(user)
fmt.Println(string(b)) // 这里没有判断错误
}
fmt.Println("Done")
} else {
fmt.Println(e)
}
}
高能预警,兄弟连教育区块链直播课程8月持续火爆来袭!
原价1188元的12节区块链进阶课程,现仅需1元!
还可免费领取《Go语言基础实战项目开发》与《Go语言高级实战项目开发》教材两本!!限时限量!!先到先得!!
关注兄弟连区块链技术公众号领取更多技术干货哦!!!
网上报名
新闻资讯
更多>>-
兄弟连“因材施教搭建桥梁”计划正式启动
2018-06-14
-
兄弟连PHP培训:高薪就业才是硬道理
2018-06-14
-
兄弟连北京安卓培训:万元高薪班级爆满
2018-06-14
-
25W高薪挑战安卓 零基础培训首选兄弟连
2018-06-14
-
兄弟连PHP教程发布 海量资源应有尽有
2018-06-14