dao对象也就是操作数据库的类,通过配置文件我们可以选择datamapper的方式、ado的方式、nhibernet的方式以前其他第三方的方式来操作数据库。有利于系统的灵活性和可扩展性。
通过分析动态选择dao的设计可以加深对ibatis.net的理解,更好的使用它,同时也可以借鉴它的好的设计模式,应用到我们的程序开发中去。
源代码是最好的分析方式,下面是一些重点代码和说明:
前提:需要在dao.config中配置:



在代码中首先需要进行初始化:


和dao注册相关的代码如下:





最主要的就是最后一句代码,daoproxy.newinstance的实现如下:






daoproxy实现iinterceptor接口,也就是aop中常有的拦截机。以后当我们通过idao接口调用实际的dao时,都会先通过daoproxy,由daoproxy拦截后进行一些必要的处理,然后再动态决定调用哪一个dao来进行数据库操作
生成好之后都会放在daomanager的静态属性中,下次要用的时候直接从里面去就可以了:
















以上涉及到的主要的类图如下:

原文地址: http://www.cnblogs.com/firstyi/archive/2007/09/13/891671.html