最近看《Spring实战》的书,沿着书籍一章一章学习,这次学到spring对数据访问的支持,写一个spring与ibatis整合的例子。
DAO接口
package com.dao;
import com.common.Person;
public interface IPerson {
public boolean insertPerson(Person person);
}
DAO实现类
package com.dao.impl;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.common.Person;
import com.dao.IPerson;
public class PersonImpl extends SqlMapClientDaoSupport implements IPerson{
@Override
public boolean insertPerson(Person person) {
this.getSqlMapClientTemplate().insert("insertPerson",person);
return false;
}
}
Spring配置文件,整合ibatis文件【applicationContext.xml】
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="CQGT0325" />
<property name="password" value="1" />
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:config/sqlmap/sqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<bean id="personDAO" class="com.dao.impl.PersonImpl">
<property name="sqlMapClient">
<ref local="sqlMapClient"/>
</property>
</bean>
</beans>
Ibatis整合文件【sqlMapConfig.xml】
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="false" enhancementEnabled="true"
lazyLoadingEnabled="false" errorTracingEnabled="true"
useStatementNamespaces="true" />
<sqlMap resource="config/sqlmap/person.xml" />
</sqlMapConfig>
具体ibatis配置文件【person.xml】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias="person" type="com.common.Person" />
<insert id="insertPerson" parameterClass="person">
<![CDATA[
insert into person values (#id#,#name#)
]]>
</insert>
</sqlMap>
具体测试类【TestSpringIbatis.java】
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.common.Person;
import com.dao.IPerson;
public class TestSpringIbatis {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:config/spring/applicationContext.xml");
Person person = new Person("1","xuxh");
IPerson personDAO = (IPerson) context.getBean("personDAO");
personDAO.insertPerson(person);
}
}
附上工程结构图: