1. 首先看Spring中beans的配置:
1) <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
第一个bean作为配置连接数据库,设置DriverManager以及用户名密码
2) <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
第二个bean就是选择SqlMapClient,并且填写该xml的路径:
XmlSqlMapClientBuilder xmlBuilder =new XmlSqlMapClientBuilder();
SqlMapClient sqlMap = xmlBuilder.buildSqlMap(reader);
3) <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
第三个bean,SqlMapClientTemplate是SqlMapClient的封装类.
SqlMapClient中包含着session的管理.
SqlMapClientTemplate用于session的封装,以及异常的捕捉.
所以按照以上的推断来说.应该尽量使用SqlMapClientTemplate.
保证session以及Exception的正常以及统一.
2. 然后就是SqlMapClient的配置:
<sqlMap resource="sql/gpsData_sqlmap_mapping.xml"/>
配置gpsData类与数据库的对应关系
3. 这两个xml文件配置好以后就可以在自己的DAO类中写相应的增删改查方法了。
public class IbatisGpsDataDao extends BaseDao implements GpsDataDao{
…
}
该类集成了BaseDao类,BaseDao提供了SqlMapClientTemplate的对象操作,该对象正是在Spring beans中配置的。通过获得这个SqlMapClientTemplate,进行增删改查的操作。
例如下面的insert方法:
public long insertGpsDataDo(GpsDataDo gpsdata) {
if(gpsdata == null){
throw new IllegalArgumentException();
}
return (Long) getSqlMapClientTemplate().insert("GpsData.insertGpsData",gpsdata);
}