`
lavafree
  • 浏览: 539686 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Go-SQL-Driver访问mysql数据库

    博客分类:
  • go
阅读更多

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)
}

 本文出处:http://blog.gcove.net/go-sql-driver-mysql.html

分享到:
评论

相关推荐

    github.com/go-sql-driver/mysql

    `github.com/go-sql-driver/mysql`是Go语言中用于连接MySQL数据库的一个驱动程序,它实现了`database/sql`包的接口,使得开发者可以方便地进行数据库交互。这个驱动为Go程序员提供了一个高效、简洁的方式来与MySQL...

    go-sql-driver.zip

    在本文中,我们将深入探讨`go-sql-driver.zip`中包含的`go-sql-driver`,这是一个用于Go语言(Golang)的MySQL数据库驱动。这个驱动程序使得在Go应用程序中与MySQL服务器进行交互变得简单而高效。我们将会讨论其版本...

    基于go-sql-driver/mysql的数据库操作辅助Go包设计源码

    该项目是利用go-sql-driver/mysql驱动的Go语言数据库操作辅助包Gendry的设计源码,包含23个文件,其中包括12个Go源代码文件、6个Markdown文档、1个YAML配置文件、1个Git忽略文件、1个LICENSE文件、1个go.mod文件和1...

    一个数据库操作框架,目前只支持Mysql, 使用 [go-sql-driver/mysql] 进行数据库连接和基本操作

    Beerus-DB是一个数据库操作框架,目前只支持Mysql, 使用 [go-sql-driver/mysql] 进行数据库连接和基本操作, 基于此做很多扩展,比如连接池管理、 多数据源,事务管理,单表无SQL操作, 多个表和复杂操作可以自己...

    Go-GoMySQLDriver一个轻量级和快速的MySQL驱动Go程序

    Go MySQL Driver是一个专门为Go语言设计的轻量级且高效的MySQL数据库驱动程序,它使得Go语言与MySQL数据库之间的交互变得更加简单和高效。这个驱动程序遵循了Go的`database/sql`包的接口规范,允许开发者利用Go的...

    Go的各种db / SQL实用程序的基准测试结果-Golang开发

    golang-db-sql-benchmark流行的Go数据库/ SQL实用程序的基准的集合测试中的数据库database / sql + go-sql-driver / mysql gocraft / dbr Gorp Sqlx Squirrel数据库/ sql SQL golang-db-sql-benchmark A流行的Go...

    MySQL连接数据库

    在Go语言中连接MySQL数据库,我们需要使用特定的工具包,这个工具包通常被称为`go-sql-driver/mysql`。这个库允许Go程序通过SQL语句与MySQL数据库进行交互。 首先,安装`go-sql-driver/mysql`库。在Go环境中,可以...

    go语言数据库驱动github

    `mysql-master`很可能是一个包含MySQL数据库驱动的Go项目的源码分支,用户可以将其解压后在本地使用,而无需直接访问GitHub。 在Go语言中,`database/sql`包是用于数据库操作的标准库,它提供了一种高级接口,可以...

    Go MySQL Driver 是 Go(golang)数据库/sql 包的 MySQL 驱动程序

    Go MySQL Driver 是 Go(golang)数据库/sql 包的 MySQL 驱动程序

    开源项目-pubnative-mysqldriver-go.zip

    MySQL驱动是Go语言应用程序与MySQL数据库交互的桥梁,使得开发者能够通过Go语言执行SQL查询,管理数据库。 2. **GC优化**: Go语言中的垃圾收集器(GC)负责自动管理内存,避免内存泄漏。在高性能系统中,GC的性能...

    golang-odbc 驱动

    ODBC 是一个标准的 API,它提供了一个统一的方式来访问各种数据库系统,如 SQL Server、Oracle、MySQL 等。 在 Go 中使用 golang-odbc 驱动,首先需要确保你的系统已经安装了 ODBC 驱动程序和数据源。数据源是 ODBC...

    golangMysql驱动.zip

    在Golang中,MySQL驱动是连接数据库的关键组件,使得开发者能够使用Go语言执行SQL查询、管理数据等操作。本文将详细介绍“golangMysql驱动.zip”文件中的内容,特别是流行的Go-SQL-Driver/MySQL驱动,并指导如何在...

    matlab访问mysql数据库教程及代码

    在本教程中,我们将学习如何使用 MATLAB 访问 MySQL 数据库,并提供详细的代码示例。 一步:下载和安装 MySQL JDBC 驱动 要使用 MATLAB 访问 MySQL 数据库,首先需要下载和安装 MySQL 的 JDBC 驱动。可以从互联网...

    go-database-sql-tutorial-translation

    《Go语言数据库SQL教程翻译》 在Go语言的开发中,与数据库的交互是一个不可或缺的部分。`go-database-sql`库提供了标准的SQL接口,使得开发者能够方便地操作各种类型的数据库。本教程是对英文版`go-database-sql-...

    Go MySQL Driver 是 Go(golang)数据库,sql 包的 MySQL 驱动程序.zip

    Go-MySQL 驱动程序Go数据库/sql包的 MySQL 驱动程序特征要求安装用法DSN(数据源名称)密码协议地址参数示例连接池和超时context.Context 支持ColumnType 支持LOAD DATA LOCAL INFILE 支持time.Time 支持Unicode ...

    go语言通过odbc访问Sql Server数据库的方法

    在实际的应用开发中,除了直接使用ODBC连接SQL Server之外,还可以使用Go语言提供的其它数据库连接库,如database/sql库结合特定的数据库驱动,例如***/denisenkom/go-mssqldb或者***/go-sql-driver/mysql等。...

    GO连接mysql

    总结,Go语言连接MySQL数据库主要涉及`go-sql-driver/mysql`包的使用,通过`sql.Open()`建立连接,然后使用`Query()`和`Exec()`执行SQL操作。记得处理好错误和关闭连接,以及在需要时使用事务来保证数据的一致性。...

    Go MySQL驱动程序是Go(golang)数据库/ sql程序包MySQL驱动程序-Golang开发

    Go-MySQL-Driver GoMySQL-Driver数据库/ sql软件包的功能要求安装用法DSN(数据源名称)密码协议地址参数示例Go-MySQL-Driver GoMySQL-Driver数据库/ sql软件包的功能要求安装用法DSN (数据源名称)密码协议地址...

    Go MySQL Driver是Go (golang)数据库/sql包的MySQL驱动程序

    Go-MySQL-DriverA MySQL-Driver for Go's packageFeaturesLightweight and Native Go implementation. No C-bindings, just pure GoConnections over TCP/IPv4, TCP/IPv6, Unix domain sockets or Automatic ...

    开源项目-fiskeben-packr-source-driver.zip

    golang-migrate是一个流行的、用于在Go语言中管理数据库迁移的库,它支持多种数据库系统,如MySQL、PostgreSQL、SQLite等。Packr源驱动程序则是这个库的一个扩展,为开发人员提供了额外的功能和便利。 首先,我们...

Global site tag (gtag.js) - Google Analytics