如何高效地使用XCodeFactory自动生成的数据层代码(二)
来源:互联网 发布:php源码保护 编辑:程序博客网 时间:2024/05/16 18:38
前面一篇文章介绍了一些基础了用法,我们在这篇文章中,作一深入的思考。在企业级的应用开发中,数据层有两个最常见的需求那就是数据库类型切换和缓存经常使用的数据。我在EnterpiseServerBase中给出了相应的组件对此进行直接的支持。只要将XCodeFactory生成的数据层代码和EnterpiseServerBase中的某些组件配合起来就可以轻松的做到以上两点。
首先来说,数据库类型的切换。XCodeFactory1.0暂时生成的是基于SQLServer数据库的代码,实际上它可以生成基于OLE、Oracle的代码,在下一版本中将会开放此功能给大家,到时大家可以根据需要生成不同数据库类型的访问类。如果你需要在SQLserver和Oracle数据库之间切换,可以按如下方式进行。首先,使用XCodeFactory生成针对SQLserver和Oracle的访问类,访问类的名字类似StudentSqlDealer和StudentOracleDealer 。然后打开EnterpriseServerBase.DataAccess.CommonInformation.cs文件,将InitializeDBAccesserFactory方法中的factory.Initialize(DataBaseType.SqlServer ,CommonInformation.ConnectStr ,true) ;改为factory.Initialize(DataBaseType.Oracle,CommonInformation.ConnectStr ,true) ;
即可切换到Oracle数据库。其它的都不用改,就这么简单!!!想了解其内部究竟如何实现可以参见EnterpiseServerBase源码。
接下来讨论常用数据的缓存。我使用IAptoticDataManager接口来处理数据缓存。
IAptoticDataManager 用于管理在整个系统运行过程中经常使用但又不易发生变化的数据,通常这些数据的量大,它们存放于数据库中,如果每次需要时就访问数据库,势必降低系统的整个性能。另外提供了updateMinutes参数,该参数指定定时同步内存中的数据与数据库中的数据一致。
public interface IAptoticDataManager :IDisposable
{
//aptDataInfos 中是AptoticDataInformation集合
void Initialize(ArrayList aptDataInfos ,DataBaseType dbType ,int updateMinutes) ; //updateMinutes为-1表示不更新
void ClearAllData() ;
void UpdateData() ;
void ClearData(Type dataClassType) ; //如果目标程序修改了部分不易变数据,应调用此方法通知IAptoticDataManager。
object GetData(Type dataClassType ,string ID) ;
object[] GetAllData(Type dataClassType) ;
}
public class AptoticDataInformation
{
public string ConnStr ;
public Type DataClassType ; //类型全名,包括命名空间部分
public bool LoadNow ;
}
需要说明的几点如下:
(1)IAptoticDataManager 一般在系统启动时就载入部分数据,而另外一些数据在第一次使用时才载入。
(2)IAptoticDataManager 还可以在运行的过程中新添其它的Aptotic数据。
(3)如果系统的特征是长时间运行,那么可以设定自动更新时间,以使IAptoticDataManager中保存的数据与数据库中的同步。
(4)请不要访问由GetData返回对象的UnAptotic部分。
(5)被缓存的数据对应的Table要求必须有一个字段为"ID"表示唯一索引 。
不出你所料,IAptoticDataManager及其默认实现都是在EnterpriseServerBase类库中。
如果你需要EnterpriseServerBase的源码,可以email向我索取。
- 如何高效地使用XCodeFactory自动生成的数据层代码(二)
- 如何高效地使用XCodeFactory自动生成的数据层代码(一)
- 如何使用XCodeFactory自动生成XML配置文件和对应的解析类?
- 转载:如何使用XCodeFactory自动生成XML配置文件和对应的解析类
- 如何使用《DB 查询分析器》高效地生成旬报货运量数据
- DAL-自动生成数据访问层代码
- 如何高效地使用搜索引擎?
- 如何高效地使用 Git
- 页面层代码的自动生成
- 如何高效地向Redis插入大量的数据
- 代码自动生成(二)
- 如何改善Managed Code的Performance和Scalability系列之二:深入理解string和如何高效地使用string
- 如何使用java代码自动生成对应的krpano全景
- 如何使用CodeSmith自动生成C#代码
- 如何优雅地使用git(二)
- 使用MyBatis Generator自动生成持久层CRUD代码的两种方法
- [置顶]springmvc+mybatis,在mybatis逆向工程的基础上使用模板自动生成controller层代码
- .net 如何高效地使用string
- 青苹果论坛重新开放
- MySQL进阶_SELECT篇
- 又一奇怪的问题?
- 如何高效地使用XCodeFactory自动生成的数据层代码(一)
- abap access key crack
- 如何高效地使用XCodeFactory自动生成的数据层代码(二)
- SQL--JOIN之完全用法
- 在线播放器代码大全
- xml基础知识
- 各种开发工具下载
- 学习Java的笔记(2)
- 学习Java的笔记(3)
- 学习Java的笔记(4)
- 制作网页的23个经典代码(JavaScript)