1. 在golib下载go-sql-driver/mysql

go get github.com/go-sql-driver/mysql

2. 代码引入

import (

"database/sql"

"github.com/go-sql-driver/mysql"

)

3. 创建DB?

db, err := sql.Open("mysql", "user:password@/dbname")

注意: sql.DB是封装driver包提供高级API, 提供了安全,多连接的操作.

4. 文档:

http://godoc.org/github.com/go-sql-driver/mysql

http://godoc.org/

http://localhost:8080/pkg/database/sql/#DB

5. 总结:

database/sql的主要interface

sql.Register{

unc Register(name string, driver driver.Driver) error

}

database/sql/driver的主要interface

type Driver interface {

Open(name string) (Conn, error)

}

type Conn interface { Prepare(query string) (Stmt, error) Close() error Begin() (Tx, error)}
type Stmt interface { Close() error NumInput() int Exec(args []Value) (Result, error) Query(args []Value) (Rows, error)}
type Tx interface { Commit() error Rollback() error}type Result interface { LastInsertId() (int64, error) RowsAffected() (int64,error)}type Rows interface { Columns() []string Close() error Next(dest []Value) error}type Execer type Value type ValueConverter type Valuer

但database/sql定义更高级的API: sql.DB, 是多并发可重用.type DB func Open(driverName, dataSourceName string) (*DB, error) func (db *DB) Begin() (*Tx, error) func (db *DB) Close() error func (db *DB) Driver() driver.Driver func (db *DB) Exec(query string, args ...interface{}) (Result, error) func (db *DB) Ping() error func (db *DB) Prepare(query string) (*Stmt, error) func (db *DB) Query(query string, args ...interface{}) (*Rows, error) func (db *DB) QueryRow(query string, args ...interface{}) *Row func (db *DB) SetMaxIdleConns(n int) func (db *DB) SetMaxOpenConns(n int)

Golang与MySQL的更多相关文章

  1. [转帖]golang操作mysql使用总结

    golang操作mysql使用总结 https://www.cnblogs.com/hanyouchun/ 讲解的很详细~ 前言 Golang 提供了database/sql包用于对SQL数据库的访问 ...

  2. golang 的 mysql 操作

    goLang的mysql操作,大致可分为三个步骤: 1.下载mysql驱动:go get github.com/go-sql-driver/mysql 2.建立连接:sql.Open("my ...

  3. golang操作mysql数据库

    golang操作mysql数据库 代码: mysql的增.删.改.查 package main import ( "database/sql" "fmt" &q ...

  4. Golang操作MySQL的正确姿势

    封装原因: 查看了很多网上提供的ORM类型的数据库操作,觉得比较麻烦,需要提前配置很多的表结构体,然后才能使用,对于数据表很多的项目就配置起来就比较麻烦,所以对golang的mysql包进行了外层包装 ...

  5. 使用golang理解mysql的两阶段提交

    使用golang理解mysql的两阶段提交 文章源于一个问题:如果我们现在有两个mysql实例,在我们要尽量简单地完成分布式事务,怎么处理? 场景重现 比如我们现在有两个数据库,mysql3306和m ...

  6. golang操作mysql使用总结

    前言 Golang 提供了database/sql包用于对SQL数据库的访问, 作为操作数据库的入口对象sql.DB, 主要为我们提供了两个重要的功能: sql.DB 通过数据库驱动为我们提供管理底层 ...

  7. Mysql学习(一)添加一个新的用户并用golang操作Mysql

    Mysql添加一个新的用户并赋予权限 添加一个自己的用户到mysql 首先我们需要先用root用户登录mysql,但是刚安装完没有密码,我们先跳过密码 ailumiyana@ailumiyana:~/ ...

  8. golang实现mysql数据库备份

    背景 navicat是mysql可视化工具中最棒的,但是,在处理视图的导入导出方面,它是按照视图名称的字母顺序来处理的,若视图存在依赖,在导入过程中就会报错.前面已经用python写了一个,但在使用过 ...

  9. 使用golang插入mysql性能提升经验

    前言 golang可以轻易制造高并发,在某些场景很合适,比如爬虫的时候可以爬的更加高效.但是对应某些场景,如文件读写,数据库访问等IO为瓶颈的场合,就没有什么优势了. 前提基础 1.golang数据库 ...

  10. [Go] golang实现mysql连接池

    golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...

随机推荐

  1. 第4章 sed命令

    1 sed命令基本用法 sed(stream editor)是流编辑器,可对文本文件和标准输入进行编辑: sed只是对缓冲区中原始文件的副本进行编辑,并不编辑原始的文件,如果需要保存改动内容,可以选择 ...

  2. C#实现文件下载的几种方法

    //WriteFile实现下载 protected void Button2_Click(object sender, EventArgs e) { /* using System.IO; */ st ...

  3. 【spring 7】spring和Hibernate的整合:声明式事务

    一.声明式事务简介 Spring 的声明式事务管理在底层是建立在 AOP 的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者 ...

  4. 【spring 3】AOP:静态代理

    一.代理的基本简介 首先,在什么时候使用代理: 在面向方面编程过程中,当需要对所有类进行某种操作(如,安全性检查,记录操作日志)时,考虑到OCP原则,我们不能在所有实现类中直接添加某些相关方法,这样一 ...

  5. Qt Meta Object System-元对象系统

    研一的时候开始使用Qt,感觉用Qt开发图形界面比MFC的一套框架来方便的多.后来由于项目的需要,也没有再接触Qt了.现在要重新拾起来,于是要从基础学起. Now,开始学习Qt事件处理机制. 元对象系统 ...

  6. ASP.NET的SEO:基础知识

    本系列目录 首先谈一点我自己的体会,我还是希望能和大家分享: 当你读到一定数量的SEO资料后,你会发现,对同一个问题,众说纷纭,莫衷一是.这其实主要是因为以下一些原因造成的:1. 很多SEO技巧,是& ...

  7. Question2Answer初体验

    Question2Answer初体验   高质量的问答社区十分有价值,很多无法解决的问题能通过问答社区找到解决办法,而对于站长来说,垂直的问答社区也很有潜力.最近盯上问答这一块,发现和我的一些思路很符 ...

  8. poj1035 Spell checker

    这题目比较简单,把思路搞清楚就可以啦. #include <stdio.h> #include <string.h> +][]; int init(){ ; while(~sc ...

  9. PL/SQL Developer基本用法

    一.新建存储过程

  10. C# .Net三层架构[转]

    C# .Net三层架构[转] 编写人:CC阿爸 2014-3-14 希望朋友们留下自己对三层架构的理解... 三层体系结构的概念     用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(D ...