针对于李天平代码生成器的数据访问层查询的改进
对于代码生成器,复杂的查询在数据访问层和事务没有提供方法,所以针对于实际项目应用,我自己在李天平的框架上拓展了新的数据访问接口。
IDAL的接口如下
IBaseDataHelper
/// <summary>
/// 公用数据接口主要用于查询,事务等复杂的数据操作
/// </summary>
public interface IBaseDataHelper
{
/// <summary>
/// 通过SQL语句返回DataSet
/// </summary>
/// <param name="strSql">传入的SQL语句</param>
/// <returns></returns>
DataSet BaseQuery(string strSql);
/// <summary>
/// SQL语句执行
/// </summary>
/// <param name="strSql">传入的SQL语句</param>
/// <returns>影响的行数</returns>
int ExecuteSql(string strSql);
/// <summary>
/// 执行事务
/// </summary>
/// <param name="SQLStringList">传入的SQL语句数组</param>
/// <returns>是否成功</returns>
bool ExecuteSqlTran(ArrayList SQLStringList);
/// <summary>
/// 执行事务
/// </summary>
/// <param name="SQLStringList">传入的SQL语句HashTable</param>
/// <returns>是否成功</returns>
bool ExecuteSqlTran(Hashtable SQLStringList);
/// <summary>
/// 通过SQL语句得到单个数据
/// </summary>
/// <param name="strSql">传入的SQL语句</param>
/// <returns>数据对象</returns>
object GetSingle(string strSql);
}
OracelDAL实现代码如下:
public class BaseDataHelper : IBaseDataHelper
{
#region IBaseDataHelper 成员
public System.Data.DataSet BaseQuery(string strSql)
{
try
{
return DbHelperOra.Query(strSql);
}
catch(System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#region IBaseDataHelper 成员
public int ExecuteSql(string strSql)
{
try
{
return DbHelperOra.ExecuteSql(strSql);
}
catch (System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
}
public bool ExecuteSqlTran(ArrayList SQLStringList)
{
try
{
DbHelperOra.ExecuteSqlTran(SQLStringList);
}
catch (System.Exception e)
{
throw new Exception(e.Message);
}
return true;
}
public bool ExecuteSqlTran(Hashtable SQLStringList)
{
try
{
DbHelperOra.ExecuteSqlTran(SQLStringList);
}
catch (System.Exception e)
{
throw new Exception(e.Message);
}
return true;
}
#endregion
#region IBaseDataHelper 成员
public object GetSingle(string strSql)
{
try
{
return DbHelperOra.GetSingle(strSql);
}
catch (System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
}
#endregion
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?