usingDapper;usingModel.DB;usingMySql.Data.MySqlClient;usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingSystem.Data.Common;namespaceTools.DB
{public classDapperHelper
{private staticDapperHelper dapperHelper;private static readonly object lockObj = new object();public static string connStr = string.Empty;privateDapperHelper()
{//数据库连接字符串
connStr =Conn.CreateInstance().ConnStr;
}public staticDapperHelper CreateDapperHelper()
{if (dapperHelper == null)
{lock(lockObj)
{if (dapperHelper == null)
{
dapperHelper= newDapperHelper();
}
}
}returndapperHelper;
}///
///增删改///
/// 数据类型 content可以是一个对象也可以是一个集合
///
///
///
public int ExecuteNonQuery(stringsql, T obj)
{int result = 0;try{using (var conn = newMySqlConnection(connStr))
{
result=conn.Execute(sql, obj);
}
}catch{ }returnresult;
}///
///增删改///
/// 数据类型 content可以是一个对象也可以是一个集合
///
///
///
public int ExecuteNonQuery(stringsql, T obj, IDbTransaction tran, IDbConnection conn)
{int result = 0;try{
result=conn.Execute(sql, obj, tran);
}catch{//回滚事务并销毁连接对象
Rollback(tran,conn);
DisposeConn(conn);return -1;
}returnresult;
}///
///返回首行首列///
///
///
///
public object ExecuteScalar(string sql, object obj = null)
{objectresult;using (var conn = newMySqlConnection(connStr))
{
result=conn.ExecuteScalar(sql, obj);
}returnresult;
}///
///查询单条记录///
///
///
/// new{...}
///
public T ExecuteQuery(string sql, object obj = null)
{
T result;using (var conn = newMySqlConnection(connStr))
{
result= conn.QueryFirstOrDefault(sql, obj);
}returnresult;
}///
///使用事务查询单条记录///
///
///
/// new{...}
///
public T ExecuteQuery(string sql, IDbTransaction tran, IDbConnection conn, object obj = null)
{
T result;
result= conn.QueryFirstOrDefault(sql, obj, tran);returnresult;
}///
///查询多条记录///
///
///
/// new{...}
///
public IEnumerable ExecuteQuerys(string sql, object obj = null)
{
IEnumerableresult;using (var conn = newMySqlConnection(connStr))
{
result= conn.Query(sql, obj);
}returnresult;
}///
///使用事务查询多条记录///
///
///
/// new{...}
///
public IEnumerable ExecuteQuerys(string sql, IDbTransaction tran, IDbConnection conn, object obj = null)
{
IEnumerableresult;
result= conn.Query(sql, obj,tran);returnresult;
}///
///获得conn对象///
///
publicIDbConnection GetConn()
{var conn = newMySqlConnection(connStr);returnconn;
}///
///打开conn///
///
public voidOpenConn(IDbConnection conn)
{
conn.Open();
}///
///销毁conn///
///
public voidDisposeConn(IDbConnection conn)
{
conn.Dispose();
conn.Close();
}///
///开启事务///
///
///
publicIDbTransaction BeginTransaction(IDbConnection conn)
{
IDbTransaction tran=conn.BeginTransaction();returntran;
}///
///提交事务///
///
///
public voidCommit(IDbTransaction tran, IDbConnection conn)
{
tran.Commit();
}///
///回滚事务///
///
///
public voidRollback(IDbTransaction tran, IDbConnection conn)
{
tran.Rollback();
}
}
}