代码拉取完成,页面将自动刷新
package mysqlgo
import (
"database/sql"
)
//ITable Table表
type ITable interface{
Table() Table
}
//IDB DB数据库
type IDB interface {
DBName() string
}
//IModel Model方法
type IModel interface {
ITable
IDB
}
//Model 数据模型
func Model(model interface{}) *Builder {
builder := new(Builder)
builder.model = model
if m, ok := builder.model.(IModel); ok {
builder.table = m.Table()
builder.dbAlias = m.DBName()
} else if m, ok := builder.model.(ITable); ok {
builder.table = m.Table()
builder.dbAlias = "default"
}
return builder
}
//QueryRow 原生查询单条数据操作
///mysqlgo.QueryRow("select * from user where username = ? and status = ?", "admin", 1)
func QueryRow(query string, args ...interface{}) (*sql.Row, error) {
db := DB().Unsafe()
if db == nil {
return nil, GetError(DBNull)
}
return db.QueryRow(query, args), nil
}
//Query 原生查询多条数据操作
///mysqlgo.Query("select * from user where username = ? and status = ?", "admin", 1)
func Query(query string, args ...interface{}) (*sql.Rows, error){
db := DB().Unsafe()
if db == nil {
return nil, GetError(DBNull)
}
return db.Query(query, args...)
}
//Insert 插入数据操作
///mysqlgo.Insert("insert into user(username, password) values(?,?)", "admin", "123456")
func Insert(query string, args ...interface{}) (int64, error) {
db := DB().Unsafe()
if db == nil {
return -1, GetError(DBNull)
}
result, err := db.Exec(query, args...)
if err != nil {
return -1, err
}
return result.LastInsertId()
}
//InsertAll 插入多条数据
func InsertAll(query string, datas ...[]interface{}) error{
db := DB().Unsafe()
if db == nil {
return GetError(DBNull)
}
tx := db.MustBegin()
for _, data := range datas {
_, err := db.Exec(query, data...)
if err != nil {
tx.Rollback()
return err
}
}
return tx.Commit()
}
//Update 更新数据操作
///mysqlgo.Update("update user set status = ?, password = ? where username = ?",1 , "test", "admin")
func Update(query string, args ...interface{}) (int64, error){
db := DB().Unsafe()
if db == nil {
return -1, GetError(DBNull)
}
result, err := db.Exec(query, args...)
if err != nil {
return -1, err
}
return result.RowsAffected()
}
//Delete 删除操作
///mysqlgo.Delete("delete from user where username = ?", "admin")
func Delete(query string, args ...interface{}) (int64, error) {
db := DB().Unsafe()
if db == nil {
return -1, GetError(DBNull)
}
result, err := db.Exec(query, args...)
if err != nil {
return -1, err
}
return result.RowsAffected()
}
//Exec 执行SQL语句
func Exec(query string, args ...interface{}) (sql.Result, error) {
db := DB().Unsafe()
if db == nil {
return nil, GetError(DBNull)
}
return db.Exec(query, args...)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。