Spring整合Ibatis
- 所需jar清单 ibatis-2.*.jar *为任意版本,下同,ibatis工作包
spring.jar
spring-ibatis.jar spring集成ibatis插件包
commons-dbcp.jar dbcp,pool为数据库连接池组件包
commons-pool-1.5.2.jar
commons-logging.jar
ojdbc14.jar
- 配置
ibatis配置sql-map-config.xml
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings errorTracingEnabled="true"
useStatementNamespaces="false"
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
/>
<sqlMap resource="com/pb/pojo/Student.xml" />
</sqlMapConfig>
spring配置applicationContext.xml
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!-- 结束 -->
<!-- 加载属性文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>
config/database.properties
</value>
</list>
</property>
</bean>
<!--结束 -->
<!-- ibatis配置 -->
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="config/sql-map-config.xml">
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 结束 -->
<!-- DAO配置 -->
<bean id="StudentDao" class="com.pb.dao.StudentDao">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<!-- 结束 -->
</beans>
database.properties配置
Java代码
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=test
jdbc.password=tiger
dbcp.initialSize=5
dbcp.maxActive =100
dbcp.maxIdle =5
dbcp.maxWait =50
dbcp.poolPreparedStatements =false
dbcp.defaultAutoCommit =false
Student.xml配置
Xml代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="stu">
<resultMap class="com.pb.pojo.Student" id="Student">
<result property="sid" column="sid" javaType="java.lang.Integer" />
<result property="sname" column="sname" />
<result property="age" column="age" javaType="java.lang.Integer" />
<result property="tel" column="tel" />
<result property="address" column="address" />
<result property="cid" column="cid" javaType="java.lang.Integer" />
</resultMap>
<select id="findAllStudent" resultMap="Student">
select * from student
</select>
</sqlMap>
StudentDao.java
Java代码
package com.pb.dao;
import java.sql.SQLException;
import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.pb.pojo.Student;
@SuppressWarnings("unchecked")
public class StudentDao extends SqlMapClientDaoSupport {
public List<Student> findAllStudent() throws SQLException {
List<Student> result = getSqlMapClient().queryForList("findAllStudent");
System.out.println(result);
return result;
}
}
- 测试
Java代码
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("config/applicationContext.xml");
StudentDao studentDao = (StudentDao) applicationContext.getBean("StudentDao");
studentDao.findAllStudent();
}