Go语言之MySQL增删改查

来源:互联网 发布:编译php strip tags 编辑:程序博客网 时间:2024/05/16 08:46

小菜鸟学习之路

1、下载数据库驱动包

由于官方不提供实现,先下载第三方的实现,我这里用的是Go-MySQL-Driver,
确保安装git ,执行 go get github.com/go-sql-driver/mysql 此命令为git命令,
②导入包 
import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
2、连接数据库
先创建数据库表:CREATE TABLE `gogo` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` varchar(10) NOT NULL,  `age` int(2) NOT NULL DEFAULT '0',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
//连接数据库
//    db, err := sql.Open("mysql", "root:root@/excel") //默认连接方法
db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/excel") //指定端口和ip连接
3、执行增删改查的操作
// FirstGo project main.gopackage mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql")func main() {fmt.Println("Hello World!")testMysql()}func testMysql() {//连接数据库//db, err := sql.Open("mysql", "root:root@/excel") //默认连接方法db, err := sql.Open("mysql", "root:root@tcp(localhost:3306)/excel") //指定端口和ip连接if err != nil {fmt.Println(err)return}//关闭数据库,db会被多个goroutine共享,可以不调用defer db.Close()//定义变量var result sql.Result// 1、插入数据result, err = db.Exec("insert into gogo (name,age) values (?,?)", "xiangshang", 18)/** 检查错误信息**/checkErr(err)lastId, _ := result.LastInsertId()fmt.Println("新插入记录的ID为", lastId)// 2 更新数据var res sql.Resultres, err = db.Exec("update gogo set name = ? ,age = ?", "keshui", 22)checkErr(err)affect, err := res.RowsAffected()checkErr(err)fmt.Println(affect)//3、查询数据var row *sql.Rowrow = db.QueryRow("select * from gogo")var id intvar name stringvar age interr = row.Scan(&id, &name, &age)fmt.Println(id, "\t", name, "\t", age)var rows *sql.Rowsrows, err = db.Query("select * from gogo")checkErr(err)//遍历数据for rows.Next() {var name stringvar id, age introws.Scan(&id, &age, &name)fmt.Println(id, "\t", name, "\t", age)}//关闭rows.Close()/***  4、删除数据**/var deResult sql.ResultdeResult, err = db.Exec("delete from gogo where id = ?", 3)checkErr(err) //检查错误信息deAffect, err := deResult.RowsAffected()checkErr(err)         //检查错误信息fmt.Println(deAffect) //成功则打印结果是1}/** 检查错误信息**/func checkErr(err error) {if err != nil {fmt.Println(err)return}}



原创粉丝点击