Golang增删改查 前言

提示:以下是本篇文章正文内容

一、新增数据

1.示例:

    var tableDataInfo xm.TableDataInfo
    tableDataInfo.ID=1
    tableDataInfo.Name="名字"
    tableDataInfo.Power="权限"
    tableDataInfo.Order=1 
	isok:=sqlInsertTableDataInfo (tableDataInfo )
	fmt.Println(isok)

2.方法 sqlInsertTableDataInfo :

/*
	sqlInsertTableDataInfo TableDataInfo  数据
	输入 TableDataInfo  
	输出 bool 是否执行成功
*/
func sqlInsertTableDataInfo (model *xm.TableDataInfo ) bool {
	var args []interface{}
	insertSQL:= `INSERT INTO [dbo].[table_data] ([td_id] ,[td_name] ,[td_power] ,[td_order]) `
	insertSQL+= `VALUES(?,?,?,?)`
	args = append(args, model.ID, model.Name, model.Power, model.Order)
	result, err := sqlDB.Exec(insertSQL, args...)
	if err != nil {
		sbjlog.Debug("sqlInsertTableDataInfo 新增 table_data 信息SQL错误 %s", err.Error())
		return false
	}
	if count, err := result.RowsAffected(); count <= 0 || err != nil {
		return false
	}
	return true //返回成功
}
二、删除数据

1.示例:

tdID:=1
affect, err := ExecSQL(sqlDB, "DELETE table_data where td_id= ?", tdID)
fmt.Println(affect)
fmt.Println(err)

2.方法 ExecSQL :

/*
ExecSQL 通用语句
	参数:
	1. *sql.DB
	2. SQL语句 例子:UPDATE WX_USER_INFO SET wui_status = 20 WHERE wui_openid = ?
		例子:INSERT INTO dbo.ALL_WEIXIN_MSG_LOG (awml_wxid,awml_send_openid,awml_msg_from,awml_msg_body,awml_addtime) VALUES(?,?,?,?,GETDATE())
	3. SQL语句参数参数  XXXX ,.........
	返回受影响行数affect和错误提示消息err
*/
func ExecSQL(sqlBasis *sql.DB, sqlStr string, args ...interface{}) (int64, error) {
	affect := int64(-1)
	var result sql.Result
	var err error
	result, err = sqlBasis.Exec(sqlStr, args...)
	if err == nil {
		affect, _ = result.RowsAffected()
	}
	if affect == -1 { //执行失败
	err = fmt.Errorf("ExecSQL Err:%s\nsql:%s\ndata:%s", err, sqlStr, fmt.Sprintln(args...))
	}
	return affect, err
}
三、修改数据

1.示例:

    var tableDataInfo xm.TableDataInfo
    oldID:=1
    tableDataInfo.ID=2
    tableDataInfo.Name="名字"
    tableDataInfo.Power="权限"
    tableDataInfo.Order=1 
	isok:=sqlUpdateTableDataInfo(tableDataInfo,oldID)
	fmt.Println(isok)

2.方法 sqlUpdateTableDataInfo :

/*
	sqlUpdateTableDataInfo TableDataInfo  数据
	输入 TableDataInfo  
	输出 bool 是否执行成功
*/
func sqlUpdateTableDataInfo (model *xm.TableDataInfo ,oldID int) bool {
	var args []interface{}
	updateSQL:= `UPDATE [dbo].[table_data]  set [td_id]=? ,[td_name] =?,[td_power] =?,[td_order]=? where td_id=?`
	args = append(args, model.ID, model.Name, model.Power, model.Order,oldID )
	result, err := sqlDB.Exec(updateSQL, args...)
	if err != nil {
		sbjlog.Debug("sqlUpdateTableDataInfo 修改 table_data 信息SQL错误 %s", err.Error())
		return false
	}
	if count, err := result.RowsAffected(); count <= 0 || err != nil {
		return false
	}
	return true //返回成功
}
三、查询数据

1.示例:

    var tableDataInfo xm.TableDataInfo
    tableDataInfo.ID =2
    sqlStr:="select isnull(td_name,'') td_name from table_data where td_id =?"
    err = sqlDB.QueryRow(sqlStr, tableDataInfo.ID).Scan(&tableDataInfo.Name)
    fmt.Println(err)
    fmt.Println(tableDataInfo.Name)
总结

每天进步一点点