1、spring将dataSource和configLocation(ibatis的配置文件,写sql那个)注入到sqlMapClient(SqlMapClientFactoryBean)中,
2、然后dao层继承SqlMapClientDaoSupport,它里面有一个SqlMapClientTemplate,其实注入的dataSource和configLocation就是给它里面注入的
并且将sqlMapClient注入给dao层(其实就是注入给继承的SqlMapClientDaoSupport--this.sqlMapClientTemplate.setSqlMapClient(sqlMapClient)中)
3、在dao层调用getSqlMapClientTemplate()(SqlMapClientDaoSupport.getSqlMapClientTemplate())然后调用executeWithListResult、queryForObject、queryForList、queryForMap、insert、update、delete这些函数执行与数据库的交互
dataSource配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
<property name="maxActive"><value>${jdbc.maxActive}</value></property>
<property name="maxIdle"><value>${jdbc.maxIdle}</value></property>
<property name="maxWait"><value>${jdbc.maxWait}</value></property>
</bean>
其中下面是在配置文件中用${}取值的配置(取
jdbc.properties、
hxzk.properties中的属性)
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<value>/WEB-INF/config/jdbc.properties</value>
<value>classpath:/hxzk.properties</value>
</list>
</property>
</bean>
sqlMapClient配置:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="configLocation">
<value>classpath:/sql-map-config.xml</value>
</property>
<property name="lobHandler">
<ref local="oracleLobHandler"/>
</property>
</bean>
至此,配置完成。
参考资料:http://blog.youkuaiyun.com/jinoon/article/details/6522172