分类:
2008-09-09 17:11:32
在使用iBatis的sqlmap时,总是有些疑惑,DAO是怎么找到sqlmap的配置文件的呢,DAO是怎么获得数据库的配置信息的呢,这些又是怎么和Spring整合在一起的呢?带着这些疑问,鄙人试图通过对某个项目的代码分析,来理清这些头绪。
当我们书写一个DAO实现类时,首先implement一个DAO接口。然后继承BaseDAO类。这个类对Spring的DaoSupport类作了扩展,提供了两个重要的方法setDataSource()和setSqlMapClient()。setDataSource()方法用来设置数据源,从而确定数据库配置信息。而setSqlMapClient()用来设置SqlMapClient,就是SqlMapClient确定了sqlmap的配置。其整个静态结构如下图所示:
图1
在上图中,BaseDAO的setDataSource()和setSqlMapClient()方法实际上是分别调用了SqlMapClientTemplate类对象sqlMapClientTemplate的setDataSource()和setSqlMapClient()方法。其中setDataSource()方法是SqlMapClientTemplate类通过继承JdbcAccessor类获得。
[1]