MySQL工具类

时间:2022-06-05 22:09:15

 1 package tools
 2 
 3 
 4 import (
 5     "database/sql"
 6     "fmt"
 7     _"github.com/go-sql-driver/mysql"
 8 )
 9 
10 type MySQLHelper struct {
11     Connection string
12 }
13 
14 func (t *MySQLHelper) GetDb()*sql.DB{
15     db, err := sql.Open("mysql", t.Connection)
16     if err != nil {
17         fmt.Println(err)
18     }
19     return db
20 }
21 
22 //region 查询数据集合,返回rows对象指针
23 func (t *MySQLHelper) Query(sqlstr string)*sql.Rows{
24     db:=t.GetDb()
25     //关闭数据库
26     defer db.Close()
27 
28     rows,err := db.Query(sqlstr)
29     if err!=nil{
30         msg:=fmt.Sprintf("Query-SQL异常:%s",sqlstr)
31         fmt.Println(msg)
32         LogTool.Log(msg,4,err)
33         return nil
34     }
35     return rows
36 }
37 //endregion
38 
39 //region 查询数据集合,返回rows对象指针
40 func (t *MySQLHelper) ExecuteSQL(sqlstr string)(ret sql.Result,err error){
41     db:=t.GetDb()
42     //关闭数据库
43     defer db.Close()
44 
45     ret,err = db.Exec(sqlstr)
46     if err!=nil{
47         msg:=fmt.Sprintf("Execute-SQL异常:%s",sqlstr)
48         fmt.Println(msg)
49         LogTool.Log(msg,4,err)
50     }
51     return ret,err
52 }
53 //endregion

 

调用示例:

var MySQLTool tools.MySQLHelper
MySQLTool.Connection=ConfigTool.Gateway_Connection
//insert or update or delete
ret,err:=MySQLTool.ExecuteSQL(sqlstr)

//query
rows:=MySQLTool.Query(sqlstr)
var model entity.GatewayProject
for rows.Next(){
err:=rows.Scan(&model.Id,&model.ProjectName,&model.Prefix,&model.ProjectType,&model.ProjectPath,&model.ProjectMemo)
list = append(list, model)
}