Dapper-OracleSQLHelper 通用封装

/// <summary>

/// Oracle Help 封装使用

/// </summary>

/// <typeparam name="T"></typeparam>

public class OracleSQLDapperHelper<T> where T : class

{

/// <summary>

/// 数据库连接字符串

/// </summary>

/* private static readonly string connectionString =

ConfigurationManager.ConnectionStrings"OracleConn".ConnectionString;*/

private static readonly string connectionString = @"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)

(HOST=192.168.0.139)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=m4mestdb)))

;User ID=yms;Password=yms;";

/// <summary>

/// 查询列表

/// </summary>

/// <param name="sql">查询的sql</param>

/// <param name="param">替换参数</param>

/// <returns></returns>

public static List<T> Query(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.Query<T>(sql, param).ToList();

}

}

/// <summary>

/// 查询第一个数据

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static T QueryFirst(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.QueryFirst<T>(sql, param);

}

}

/// <summary>

/// 查询第一个数据没有返回默认值

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static T QueryFirstOrDefault(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.QueryFirstOrDefault<T>(sql, param);

}

}

/// <summary>

/// 查询单条数据

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static T QuerySingle(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.QuerySingle<T>(sql, param);

}

}

/// <summary>

/// 查询单条数据没有返回默认值

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static T QuerySingleOrDefault(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.QuerySingleOrDefault<T>(sql, param);

}

}

/// <summary>

/// 增删改

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static int Execute(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.Execute(sql, param);

}

}

/// <summary>

/// Reader获取数据

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static IDataReader ExecuteReader(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.ExecuteReader(sql, param);

}

}

/// <summary>

/// Scalar获取数据

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static object ExecuteScalar(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.ExecuteScalar(sql, param);

}

}

/// <summary>

/// Scalar获取数据

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static T ExecuteScalarForT(string sql, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

return con.ExecuteScalar<T>(sql, param);

}

}

/// <summary>

/// 带参数的存储过程

/// </summary>

/// <param name="sql"></param>

/// <param name="param"></param>

/// <returns></returns>

public static List<T> ExecutePro(string proc, object param)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

List<T> list = con.Query<T>(proc,

param,

null,

true,

null,

CommandType.StoredProcedure).ToList();

return list;

}

}

/// <summary>

/// 事务1 - 全SQL

/// </summary>

/// <param name="sqlarr">多条SQL</param>

/// <param name="param">param</param>

/// <returns></returns>

public static int ExecuteTransaction(string\[\] sqlarr)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

using (var transaction = con.BeginTransaction())

{

try

{

int result = 0;

foreach (var sql in sqlarr)

{

result += con.Execute(sql, null, transaction);

}

transaction.Commit();

return result;

}

catch (Exception ex)

{

transaction.Rollback();

return 0;

}

}

}

}

/// <summary>

/// 事务2 - 声明参数

///demo:

///dic.Add("Insert into Users values (@UserName, @Email, @Address)",

/// new { UserName = "jack", Email = "380234234@qq.com", Address = "上海" });

/// </summary>

/// <param name="Key">多条SQL</param>

/// <param name="Value">param</param>

/// <returns></returns>

public static int ExecuteTransaction(Dictionary<string, object> dic)

{

using (IDbConnection con = new OracleConnection(connectionString))

{

using (var transaction = con.BeginTransaction())

{

try

{

int result = 0;

foreach (var sql in dic)

{

result += con.Execute(sql.Key, sql.Value, transaction);

}

transaction.Commit();

return result;

}

catch (Exception ex)

{

transaction.Rollback();

return 0;

}

}

}

}

}

相关推荐
这个DBA有点耶4 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G4 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备4 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远4 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
2601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
张洛闻Eren4 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
于平安4 天前
MySQL-触发器
数据库·mysql
白远山4 天前
上海24小时自助健身房解决方案实战指南与经验分享
java·数据库·架构·需求分析
Omics Pro4 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理
2603_965148115 天前
AI+API选品:下一代智能商务助手雏形已现
java·大数据·数据库·人工智能·数据挖掘