1 配置文件 ibatis-context.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:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <bean id="placeholderConfig"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="location">
- <value>classpath:db.properties
- </value>
- </property>
- </bean>
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${db.driverClassName}" />
- <property name="url" value="${db.url}NIHAO" />
- <property name="username" value="${db.username}" />
- <property name="password" value="${db.password}" />
- <property name="initialSize" value="2" />
- <property name="maxActive" value="20" />
- <property name="maxWait" value="-1" />
- <property name="maxIdle" value="10" />
- <property name="removeAbandoned" value="true" />
- <property name="removeAbandonedTimeout" value="30000" />
- <property name="logAbandoned" value="true" />
- </bean>
- <bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
- <property name="sqlMapClient" ref="sqlMapClient"></property>
- </bean>
- <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
- <property name="dataSource" ref="dataSource"></property>
- <property name="configLocation" value="sql-map-config.xml"></property>
- </bean>
- <bean id="ibatisProductDao" class="springapp.repository.IbatisProductDao">
- <property name="sqlMapClientTemplate" ref="sqlMapClientTemplate"></property>
- </bean>
- </beans>
2 sql-map-config.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>
- <sqlMap resource="product-sql.xml" />
- </sqlMapConfig>
3 product-sql.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>
- <resultMap id="productResult" class="springapp.domain.Product">
- <result property="id" column="ID"></result>
- <result property="price" column="PRICE"></result>
- <result property="description" column="DESCRIPTION"></result>
- </resultMap>
- <!-- 获得全查询列表 -->
- <select id="getAllProduct" resultMap="productResult">
- select * from PRODUCTS
- </select>
- </sqlMap>
4 IbatisProductDao.java源码
- public class IbatisProductDao implements ProductDao {
- private SqlMapClientTemplate sqlMapClientTemplate;
- public void setSqlMapClientTemplate(
- SqlMapClientTemplate sqlMapClientTemplate) {
- this.sqlMapClientTemplate = sqlMapClientTemplate;
- }
- @Override
- public List<Product> getProductList() {
- return sqlMapClientTemplate.queryForList("getAllProduct");
- }
- @Override
- public void saveProduct(Product prod) {
- }
- }
5 测试代码
- public class IbatisProductDaoTest {
- static ApplicationContext ctx = new ClassPathXmlApplicationContext(
- new String[] { "file:src/ibatis-context.xml" });
- public static void main(String[] args) {
- ProductDao dao = (ProductDao) ctx.getBean("ibatisProductDao");
- List<Product> list = dao.getProductList();
- for (Product p : list) {
- System.out.println(p.getDescription());
- }
- }