开源mysql dri_用Go-SQL-Driver访问mysql数据库

go语言提供了数据库访问的统一接口,但是自己自己的具体数据库访问驱动实现。开源比较常用的有go-sql-driver/mysql(原来的go-mysql-driver)和mymysql我个人比较倾向于go-sql-driver,实现规范,通用性强Go-SQL-Driver是它的新名字,已经迁移到了gitbub,地址:https://github.com/Go-SQL-Driver/MySQL安装使用很简单$ go get github.com/Go-SQL-Driver/MySQL就按装到GOPATH下了使用也简单,拿他的例子:新建一张表

CREATE TABLE `squareNum` (

`number` int(11) NOT NULL,

`squareNumber` int(11) NOT NULL,

PRIMARY KEY (`number`)

)

数据库操作

package main

import (

"database/sql"

"fmt"

_ "github.com/Go-SQL-Driver/MySQL" //引入mysql驱动

)

func main() {

/*DSN数据源名称

[username[:password]@][protocol[(address)]]/dbname[?param1=value1&paramN=valueN]

user@unix(/path/to/socket)/dbname

user:password@tcp(localhost:5555)/dbname?charset=utf8&autocommit=true

user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname?charset=utf8mb4,utf8

user:password@/dbname

无数据库: user:password@/

*/

db, err := sql.Open("mysql", "root:123456@tcp(192.168.1.203:3306)/test") //第一个参数数驱动名

if err != nil {

panic(err.Error())

}

defer db.Close()

// 欲编译语句,插入数据,这个是标准的go接口,所以只要标准sql,其他数据库通用的,只要换上面的驱动名

stmtIns, err := db.Prepare("INSERT INTO squareNum VALUES( ?, ? )" ) // ? = 占位符

if err != nil {

panic(err.Error())

}

defer stmtIns.Close() // main结束是关闭

// Prepare statement for reading data

stmtOut, err := db.Prepare("SELECT squareNumber FROM squareNum WHERE number = ?")

if err != nil {

panic(err.Error())

}

defer stmtOut.Close()

// Insert square numbers for 0-24 in the database

for i := 0; i < 25; i++ {

_, err = stmtIns.Exec(i, (i * i)) // 执行插入

if err != nil {

panic(err.Error())

}

}

var squareNum int // we "scan" the result in here

// Query the square-number of 13

err = stmtOut.QueryRow(13).Scan(&squareNum) // WHERE number = 13

if err != nil {

panic(err.Error())

}

fmt.Printf("The square number of 13 is: %d", squareNum)

// Query another number.. 1 maybe?

err = stmtOut.QueryRow(1).Scan(&squareNum) // WHERE number = 1

if err != nil {

panic(err.Error())

}

fmt.Printf("The square number of 1 is: %d", squareNum)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值