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()
}
作者: 咕咚!
出处: https://www.cnblogs.com/linga/
关于作者:专注虚拟化,运维开发,RPA,Rust,Go,Python!
本文版权归作者和博客园共有,禁止*.csdn.net转载,禁止以盈利为目的的转载,转载文章,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(oldsixa@163.com)咨询.

浙公网安备 33010602011771号