golang操作mysql

转载 2013年12月04日 10:07:39
001 package main
002  
003 import (
004     "fmt"
005     "database/sql"
006     _"mysql"
007 )
008  
009 type TestMysql struct {
010     db *sql.DB
011 }
012  
013 /* 初始化数据库引擎 */
014 func Init() (*TestMysql,error){
015     test := new(TestMysql);
016     db,err := sql.Open("mysql","test:test@tcp(127.0.0.1:3306)/abwork?charset=utf8");
017     //第一个参数 : 数据库引擎
018     //第二个参数 : 数据库DSN配置。Go中没有统一DSN,都是数据库引擎自己定义的,因此不同引擎可能配置不同
019     //本次演示采用http://code.google.com/p/go-mysql-driver
020     if err!=nil {
021         fmt.Println("database initialize error : ",err.Error());
022         return nil,err;
023     }
024     test.db = db;
025     return test,nil;
026 }
027  
028 /* 测试数据库数据添加 */
029 func (test *TestMysql)Create(){
030     if test.db==nil {
031         return;
032     }
033     stmt,err := test.db.Prepare("insert into test(name,age)values(?,?)");
034     if err!=nil {
035         fmt.Println(err.Error());
036         return;
037     }
038     defer stmt.Close();
039     if result,err := stmt.Exec("张三",20);err==nil {
040         if id,err := result.LastInsertId();err==nil {
041             fmt.Println("insert id : ",id);
042         }
043     }
044     if result,err := stmt.Exec("李四",30);err==nil {
045         if id,err := result.LastInsertId();err==nil {
046             fmt.Println("insert id : ",id);
047         }
048     }
049     if result,err := stmt.Exec("王五",25);err==nil {
050         if id,err := result.LastInsertId();err==nil {
051             fmt.Println("insert id : ",id);
052         }
053     }
054 }
055  
056 /* 测试数据库数据更新 */
057 func (test *TestMysql)Update(){
058     if test.db==nil {
059         return;
060     }
061     stmt,err := test.db.Prepare("update test set name=?,age=? where age=?");
062     if err!=nil {
063         fmt.Println(err.Error());
064         return;
065     }
066     defer stmt.Close();
067     if result,err := stmt.Exec("周七",40,25);err==nil {
068         if c,err := result.RowsAffected();err==nil {
069             fmt.Println("update count : ",c);
070         }
071     }
072 }
073  
074 /* 测试数据库数据读取 */
075 func (test *TestMysql)Read(){
076     if test.db==nil {
077         return;
078     }
079     rows,err := test.db.Query("select id,name,age from test limit 0,5");
080     if err!=nil {
081         fmt.Println(err.Error());
082         return;
083     }
084     defer rows.Close();
085     fmt.Println("");
086     cols,_ :=  rows.Columns();
087     for i := range cols {
088         fmt.Print(cols[i]);
089         fmt.Print("\t");
090     }
091     fmt.Println("");
092     var id int;
093     var name string;
094     var age int;
095     for rows.Next(){
096         if err := rows.Scan(&id,&name,&age);err==nil {
097             fmt.Print(id);
098             fmt.Print("\t");
099             fmt.Print(name);
100             fmt.Print("\t");
101             fmt.Print(age);
102             fmt.Print("\t\r\n");
103         }
104     }
105 }
106  
107 /* 测试数据库删除 */
108 func (test *TestMysql)Delete(){
109     if test.db==nil {
110         return;
111     }
112     stmt,err := test.db.Prepare("delete from test where age=?");
113     if err!=nil {
114         fmt.Println(err.Error());
115         return;
116     }
117     defer stmt.Close();
118     if result,err := stmt.Exec(20);err==nil {
119         if c,err :=  result.RowsAffected();err==nil{
120             fmt.Println("remove count : ",c);
121         }
122     }
123 }
124  
125 func (test *TestMysql)Close(){
126     if test.db!=nil {
127         test.db.Close();
128     }
129 }
130  
131 func main(){
132     if test,err := Init();err==nil {
133         test.Create();
134         test.Update();
135         test.Read();
136         test.Delete();
137         test.Read();
138         test.Close();
139     }
140 }

golang连接mysql操作示例增删改查

http://www.01happy.com/golang-mysql-demo/ 下载驱动 sudo go get github.com/go-sql-driver/mysql 如...
  • liukuan73
  • liukuan73
  • 2016年07月11日 09:03
  • 4395

golang连接mysql操作及动态连接池设置

golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/...
  • u011715678
  • u011715678
  • 2015年10月16日 23:30
  • 1446

golang连接mysql数据库

1.安装golang的开发环境点击打开链接 2.下载github开源的mysql驱动: go get github.com/go-sql-driver/mysql 如果无法下载建议连接VPN。 ...
  • rambo_huang
  • rambo_huang
  • 2017年03月06日 22:26
  • 488

Go操作mysql实现增删改查及连接池

golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/...
  • kenkao
  • kenkao
  • 2015年08月22日 11:06
  • 29636

Golang连接SQLite、MySQL、Oracle数据库

本文目录 1.Go连接SQLite 1_1.SQLite推荐驱动 1_2.SQLite连接示例代码 2.Go连接MySQL 2_1.MySQL推荐驱动 2_2.MySQL连接示例代码 3...
  • xxy0403
  • xxy0403
  • 2017年02月10日 13:50
  • 2201

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

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

Golang 连接MySql数据库使用方法

package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) var ( dbhostsi...
  • a19352226
  • a19352226
  • 2016年03月06日 19:52
  • 13032

golang 操作mysql测试用例

package main import ( "fmt" "database/sql"  _ "github.com/go-sql-driver/mysql" ) type Test...
  • u011363248
  • u011363248
  • 2014年02月14日 09:39
  • 746

golang时间从数据库读取时间

package main import ( "database/sql/driver" "encoding/json" "fmt" "time" ) type NullTime struc...
  • u013163178
  • u013163178
  • 2016年11月10日 15:45
  • 1120

GoLang操作Mysql

1:首先现在GoLang的Mysql驱动: go get  github.com/go-sql-driver/mysql         关于驱动的具体使用方法,可以去 github.com/go...
  • littie1987
  • littie1987
  • 2015年12月02日 14:33
  • 79
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:golang操作mysql
举报原因:
原因补充:

(最多只允许输入30个字)