iBATIS配置類及操作類的淺析
iBATIS配置類介紹
iBATIS配置類1、SqlMapFactoryBean具有三個變量configLocation--配置文件的存放地址,sqlmap--讀取配置文件后,生成的對象,sqlMapProperties。
Spring使用SqlMapFactoryBean類來讀取ibatis的配置文件,創(chuàng)建sqlmap。iBATIS會從classpath讀取資源,所以要確保配置文件在classpath上面。
***種情況:
- ﹤bean id="sqlMap" class="org.springframework.orm.ibatis.SqlMapFactoryBean"﹥
- ﹤property name="configLocation"﹥
- ﹤value﹥classpath:/sql-map-config.xml﹤/value﹥
- ﹤/property﹥
- ﹤/bean﹥
sql-map-config.xml文件存放在src的目錄下。
第二種請況:
- ﹤bean id="sqlMap" class="org.springframework.orm.ibatis.SqlMapFactoryBean"﹥
- ﹤property name="configLocation"﹥﹤value﹥WEB-INF/sqlmap-config.xml﹤/value﹥﹤/property﹥
- ﹤/bean﹥
sql-map-config.xml文件存放在web-info的目錄下。
已經(jīng)定義了sqlmap,接著必須為iBATIS寫一個配置文件。
- ﹤sql-map-config﹥
- ﹤settings statementCacheSize="0" driverHintsEnabled="true"/﹥
- ﹤sql-map resource="com/longtop/bas/BasSql.xml"/﹥
- ﹤/sql-map-config﹥
iBATIS配置類2、SqlMap 對象。
主要由SqlMapFactoryBean讀取xml文件生成的對象,一個項目中只有一個SqlMap對象(singleton對象),SqlMap相當所有ibatis的配置文件。Spring會調(diào)用SqlMapFactoryBean生成一個SqlMap對象,并且將SqlMap對象注入到每個SqlDao對象中(繼承SqlMapDaoSupport)。
- ﹤!-- SqlMap setup for iBATIS Database Layer --﹥
- ﹤bean id="sqlMap" class="org.springframework.orm.ibatis.SqlMapFactoryBean"﹥
- ﹤property name="configLocation"﹥
- ﹤value﹥classpath:/sql-map-config.xml﹤/value﹥
- ﹤/property﹥
- ﹤/bean﹥
- ﹤bean id="basSqlDao" class="com.longtop.bas.dao.BasSqlDaoImpl"﹥
- ﹤property name="dataSource"﹥
- ﹤ref local="dataSource" /﹥
- ﹤/property﹥
- ﹤property name="sqlMap"﹥
- ﹤ref local="sqlMap" /﹥
- ﹤/property﹥
- /bean﹥
iBATIS操作類介紹
iBATIS操作類1、運用類(FeedbackSqlDaoImpl)和運用接口(IFeedbackSqlDao),運用類(FeedbackSqlDaoImpl)必須實現(xiàn)了SqlMapDaoSupport的所有抽象方法,且必須實現(xiàn)IFeedbackSqlDao 的抽象方法。
運用類代碼介紹:
- public class FeedbackSqlDaoImpl extends SqlMapDaoSupport implements IFeedbackSqlDao {
- public List listFeedback(HashMap hs) throws DataAccessException {
- return getSqlMapTemplate().executeQueryForList("listFeedback",hs);
- }
- }
運用接口代碼介紹:
- public interface IFeedbackSqlDao {
- public List listFeedback(HashMap hs) throws DataAccessException;
- }
iBATIS操作類2、SqlMapDaoSupport抽象類,里面所有的方法都是final方法,不可修改。該類的主要目的是生成一個私有成員變量是SqlMapTemplate的對象,并且提供SetDataSource()和SetSqlMap()方法。這樣Spring可以調(diào)用這兩個方法,并將DataSource和SqlMap封裝到SqlMapTemplate這個對象,方便FeedbackSqlDaoImpl的方法可以引用這對象的方法。
- public abstract class SqlMapDaoSupport extends DaoSupport {
- private SqlMapTemplate sqlMapTemplate = new SqlMapTemplate();
- public final void setDataSource(DataSource dataSource) {
- this.sqlMapTemplate.setDataSource(dataSource);
- }
- public final void setSqlMap(SqlMap sqlMap) {
- this.sqlMapTemplate.setSqlMap(sqlMap);
- }
- 。。。。。。。。。。。。。。。
- }
iBATIS操作類3、SqlMapTemplate類的主要目的是查找和String statementName對應(yīng)的MappedStatement對象,并調(diào)用相應(yīng)的方法。
iBATIS配置類及操作類的基本情況就向你介紹到這里,希望對你有所幫助。
【編輯推薦】