GOLANG - goSqlHelper輕鬆操做mysql

這個類庫靈感來源於.net的dbHelper類,由於其簡單易用,如今go的driver必須使用對象映射,這讓人火大不爽,不能實現靈活的Map,在Key常常變更的業務場景裏面很是不爽,我仍是喜歡直接寫sql來的爽,無處不在,搞神馬映射感受約束!因此寫了這個類庫!git

對於這個driver映射一個map仍是能夠輕鬆到到了,關鍵時map裏面的數據全是byte,這幾乎很難解碼,因此封裝類庫,實現總體的解決方法,你們用的很差的地方,歡迎留言,完善!多謝!多謝!github

獲取類庫的方法:sql

一、git clone git@github.com:bobby96333/GoSqlHelper.git
二、go get github.com/bobby96333/GoShellHelper

github:https://github.com/bobby96333/GoSqlHelpertcp

代碼 Demo工具

package main

import (
"fmt"
"github.com/bobby96333/goSqlHelper"
)

func main(){
fmt.Println("hello")
conn,err :=goSqlHelper.MysqlOpen("user:password@tcp(127.0.0.1:3306)/dbname")
checkErr(err)
row,err := conn.QueryRow("select * from table where col1 = ? and col2 = ?","123","abc")
checkErr(err)
if *row==nil {
fmt.Println("no found row")
}else{
fmt.Printf("%+v",row)
}
}

func checkErr(err error){
if err!=nil {
panic(err)
}
}

output:
&map[col1:abc col2:123].net

HelperRow的使用方法code

fmt.println(row.ToJson())
fmt.Println("get string:",row.String("col2"))

//query a integer
fmt.Println("get Int:",row.PInt("col1"))
//or
if col1,err:=row.Int("col1");err!=nil {
fmt.Println("query col 1 :",col1)
}

//query a long
fmt.Println("get Int:",row.PInt64("col1"))
//or
if col1,err:=row.Int64("col1");err!=nil {
fmt.Println("query col 1 :",col1)
}

 多行數據讀取對象

rows,err := conn.QueryRows("select * from table where col1 = ? and col2 = ?","123","abc")
errCheck(err)
for _,row :=range *rows {
fmt.Println("row:",row.ToJson())
}

 數據流方式讀取blog

querying,err := conn.Querying("select * from table where col1 = ? and col2 = ?","123","abc")
errCheck(err)
for row,err:=querying.QueryRow();row!=nil&&err==nil;row,err=querying.QueryRow() {
fmt.Println("row:",row.ToJson())
}

 執行sqlget

ret,err := conn.Exec("updatetable set col2 = ? where col1 = ? ","abc","123")
errCheck(err)
rowNum,err:= ret.RowsAffected()
errCheck(err)
fmt.Println("updated row:",rowNum)

 另外使用goSqlHelper導出csv的工具也很是好用

https://github.com/bobby96333/csvdump

相關文章
相關標籤/搜索