以下示例仅仅是我测试框架所用的一部分示范代码,仅供大家参考:
DAO: 依赖于NStarfaiNet的架构将不再需要DAO这一层,因为NStarfaiNet.Access就是你的DAO。为了不将NStarfaiNet过多方法和接口暴露给开发人员使用,应用架够有必要做一下适当的包装。
如下所示:
IBaseDao.cs:
/**//*
版权所有:版权所有(C) 2007 NStarfaiNet框架设计者
模块名称:NStarfaiNet.Test
完成日期:2006-08-20
设计作者:刘斌[liubin]
内容摘要:IBaseDao 的摘要说明。
*/
using System;
using System.Data;
using System.Collections.Specialized;
using NStarfaiNet.Access.Interface;
namespace NStarfaiNet.Test.Dao
...{
/**//// <summary>
/// 应用框架DAO接口
/// </summary>
public interface IBaseDao : IDao
...{
自动生成代码#region 自动生成代码
/**//// <summary>
/// 新增记录。
/// </summary>
/// <param name="entity">实体对象。</param>
/// <returns>新增成功返回true,否则返回false。</returns>
int Insert(IEntity entity);
/**//// <summary>
/// 删除记录。
/// </summary>
/// <param name="entity">实体对象。</param>
/// <returns>删除成功返回true,否则返回false。</returns>
int Delete(Key key);
/**//// <summary>
/// 更新记录。
/// </summary>
/// <param name="entity">实体对象。</param>
/// <returns>更新成功返回true,否则返回false。</returns>
int Update(IEntity entity);
/**//// <summary>
/// 获得表下一个主键值
/// </summary>
/// <param name="tableName">表名称</param>
/// <returns></returns>
int GetPrimaryKeyValue(string tableName);
/**//// <summary>
/// 根据主键获得IEntity对象
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
IEntity Get(Key key);
/**//// <summary>
/// 查询表
/// </summary>
/// <param name="tag">语句ID</param>
/// <param name="ht">条件集合</param>
/// <returns></returns>
DataTable ExcuteDataTable(string tag, HybridDictionary ht);
/**//// <summary>
/// 获得SQL
/// </summary>
/// <param name="tag">语句ID</param>
/// <param name="ht">条件集合</param>
/// <returns></returns>
string GetSQL(string tag, HybridDictionary ht);
#endregion
}
}
BaseDao.cs:
/**//*
版权所有:版权所有(C) 2007 NStarfaiNet框架设计者
模块名称:NStarfaiNet.Test
完成日期:2006-08-20
设计作者:刘斌[liubin]
内容摘要:BaseDao 的摘要说明。
*/
using System;
using NStarfaiNet.Access.Interface;
using NStarfaiNet.Access;
namespace NStarfaiNet.Test.Dao
...{
/**//// <summary>
/// 应用框架DAO
/// </summary>
public class BaseDao : IBaseDao
...{
自动生成代码#region 自动生成代码
/**//// <summary>
/// 数据库访问接口。
/// </summary>
private IDataAccess m_DataAccess = null;
/**//// <summary>
/// 数据库访问接口。
/// </summary>
public IDataAccess DataAccess
...{
set
...{
m_DataAccess = value;
}
get
...{
return m_DataAccess;
}
}
/**//// <summary>
/// 数据库ID
/// </summary>
/// <remarks>
/// dao_maps_config.config文件中database的ID
/// </remarks>
private string m_AccessID = string.Empty;
/**//// <summary>
/// 构造函数
/// </summary>
public BaseDao()
...{
// 默认数据库
this.m_DataAccess = AccessManager.GetInstance();
}
public BaseDao(string accessID)
...{
// 多数据库支持
this.m_AccessID = accessID;
if (accessID == null || accessID.Length == 0)
...{
this.m_DataAccess = AccessManager.GetInstance();
}
else
...{
this.m_DataAccess = AccessManager.GetInstance(m_AccessID);
}
}
public int Insert(IEntity entity)
...{
// TODO: 添加 BaseDao.Insert 实现
return m_DataAccess.Insert(entity);
}
public int Delete(Key key)
...{
// TODO: 添加 BaseDao.Delete 实现
return m_DataAccess.Delete(key);
}
public int Update(IEntity entity)
...{
// TODO: 添加 BaseDao.Update 实现
return m_DataAccess.Update(entity);
}
public int GetPrimaryKeyValue(string tableName)
...{
// TODO: 添加 BaseDao.GetPrimaryKeyValue 实现
return m_DataAccess.GetPrimaryKeyValue(tableName);
}
public System.Data.DataTable ExcuteDataTable(string tag, System.Collections.Specialized.HybridDictionary ht)
...{
// TODO: 添加 BaseDao.GetDataTable 实现
return m_DataAccess.ExcuteDataTable(tag, ht);;
}
public IEntity Get(Key key)
...{
// TODO: 添加 BaseDao.Get 实现
return m_DataAccess.Get(key);
}
public string GetSQL(string tag, System.Collections.Specialized.HybridDictionary ht)
...{
// TODO: 添加 BaseDao.GetSQL 实现
return m_DataAccess.GetSQL(tag, ht);
}
#endregion
}
}
BLL:
自动生成的业务类,此处以表bsi_test对应的业务类为示范代码,
/**//*
版权所有:版权所有(C) 2007 NStarfaiNet框架设计者
模块名称:NStarfaiNet.Test
完成日期:2006-08-20
设计作者:刘斌[liubin]
内容摘要:BsiTestBLL 的摘要说明。
*/
using System;
using NStarfaiNet.Access.Interface;
using NStarfaiNet.Test.Dao;
using NStarfaiNet.Test.Model.Interface;
using NStarfaiNet.Test.BLL;
namespace NStarfaiNet.Test.GeneratorCode.BLL
...{
/**//// <summary>
/// BsiTestBLL 的摘要说明。
/// </summary>
public class BsiTestBLL : BaseBLL
...{
自动生成代码#region 自动生成代码
protected BsiTestBLL()
...{
}
protected BsiTestBLL(string accessID)
...{
base.m_AccessID = accessID;
}
private static volatile BsiTestBLL m_instance = null;
/**//// <summary>
/// 方法名称: GetInstance
/// 内容摘要: 取得 BsiTestBLL 对象
/// </summary>
/// <param name="accessID">Database ID</param>
/// <returns>返回一个已经存在的实体</returns>
public static BsiTestBLL GetInstance(string accessID)
...{
// 通用的必要代码 iBatisNet双校检机制,如果实例不存在
if (m_instance == null)
...{
lock (typeof (BsiTestBLL))
...{
// 如果实例不存在
if (m_instance == null)
...{
// 创建一个的实例
m_instance = new BsiTestBLL(accessID);
}
}
}
// 返回业务逻辑对象
return m_instance;
}
/**//// <summary>
/// 方法名称: GetInstance
/// 内容摘要: 取得 BsiTestBLL 对象
/// </summary>
/// <returns>返回一个已经存在的实体</returns>
public static BsiTestBLL GetInstance()
...{
// 通用的必要代码 iBatisNet双校检机制,如果实例不存在
if (m_instance == null)
...{
lock (typeof (BsiTestBLL))
...{
// 如果实例不存在
if (m_instance == null)
...{
// 创建一个的实例
m_instance = new BsiTestBLL();
}
}
}
// 返回业务逻辑对象
return m_instance;
}
/**//// <summary>
/// 获得Dao
/// </summary>
private IBaseDao Dao
...{
get
...{
return base.GetDAO();
}
}
/**//// <summary>
/// 方法名称: Insert
/// 内容摘要: 插入纪录
/// </summary>
/// <returns>int</returns>
public int Insert(IBsiTestEntity obj)
...{
obj.TestId = this.Dao.GetPrimaryKeyValue("bsi_test");
return this.Dao.Insert(obj);
}
/**//// <summary>
/// 方法名称: Update
/// 内容摘要: 更新纪录
/// </summary>
/// <returns>int</returns>
public int Update(IBsiTestEntity obj)
...{
return this.Dao.Update(obj);
}
/**//// <summary>
/// 方法名称: Delete
/// 内容摘要: 删除纪录
/// </summary>
/// <returns>int</returns>
public int Delete(Key key)
...{
return this.Dao.Delete(key);
}
/**//// <summary>
/// 方法名称: Get
/// 内容摘要: 由键值获取一个实体对象
/// </summary>
/// <returns>IBsiTestEntity</returns>
public IBsiTestEntity Get(Key key)
...{
return (IBsiTestEntity)this.Dao.Get(key);
}
#endregion
}
}
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。