Go 操作数据库尝鲜

Go 操作数据库尝鲜

以下代码为go链接mysql操作mysql的部分代码

package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
type User struct{
ID int64
Name string
Age int8
}
var db *sql.DB
func InitDB() (err error) {
dbh := "bbsgo:bbsgo1234!@tcp(192.168.0.155:3306)/bbsgo_db"
db, err = sql.Open("mysql", dbh)
if err != nil {
return err
}
err = db.Ping()
if err != nil {
return err
}
return nil
}
func CreateTable() {
sqlStr := "create table IF NOT EXISTS sqlTest1 (ID int AUTO_INCREMENT PRIMARY KEY, Name varchar(12) " +
"NOT NULL UNIQUE, AGE TINYINT NOT NULL)"
ret, err := db.Exec(sqlStr)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(ret)
fmt.Println(ret)
r, err := ret.RowsAffected()
fmt.Println(r)
fmt.Println(err)
}
func InsertData() {
sqlStr := "insert into sqlTest(Name, AGE) value(?, ?)"
ret, err := db.Exec(sqlStr, "asd", 1)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Println(ret)
fmt.Println(ret)
r, err := ret.RowsAffected()
fmt.Println(r)
fmt.Println(err)
}
func Select() {
sqlStr := "SELECT * FROM sqlTest;"
var uList []*User
var u User
ret, err := db.Query(sqlStr)
if err != nil {
fmt.Println(err)
return
}
defer ret.Close()
fmt.Println(ret, *ret)
for ret.Next() {
err := ret.Scan(&u.ID, &u.Name, &u.Age)
if err != nil {
fmt.Println(err)
} else {
uList = append(uList, &u)
}
}
fmt.Println(uList)
fmt.Println(uList[0])
}
func main() {
err := InitDB()
if err != nil {
fmt.Println(err)
}
//CreateTable()
//InsertData()
Select()
}
posted @   咕咚!  阅读(103)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示