復(fù)制上一節(jié)中的項(xiàng)目MyBatis_Spring_DAO旬牲,命名為MyBatis_Spring_Mapper仿粹。刪除dao包及包內(nèi)所有文件搁吓、com.test/test/UserDaoTest.java,新建動(dòng)態(tài)代理接口類(lèi)mapper/UserMapper.java吭历、測(cè)試類(lèi)com.test/test/MapperTest.java堕仔,整理項(xiàng)目目錄如下所示:
項(xiàng)目目錄
修改Spring主配置文件applicationContext.xml。
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd ">
<!-- 讀取db.properties -->
<context:property-placeholder location="db.properties"/>
<!-- 配置c3p0連接池 -->
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"/>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 配置mybatis sqlSessionFactory -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置數(shù)據(jù)源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 告訴spring mybatis的核心配置文件 -->
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
</bean>
<!-- mapper動(dòng)態(tài)代理開(kāi)發(fā) -->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!-- 注入 sqlSessionFactory -->
<property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
<!-- 配置接口 -->
<property name="mapperInterface" value="com.test.mapper.UserMapper"/>
</bean>
</beans>
給出其他新建文件的代碼晌区。
UserMapper.java:
package com.test.mapper;
import com.test.bean.User;
public interface UserMapper {
//通過(guò)id查詢(xún)一個(gè)用戶(hù)
public User selectUserById(Integer id);
}
MapperTest.java:
package com.test.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.test.bean.User;
import com.test.mapper.UserMapper;
public class MapperTest {
@Test
public void Test1() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper mapper = (UserMapper) ac.getBean("userMapper");
User user = mapper.selectUserById(1);
System.out.println(user);
}
}
注意修改UserMapper.xml和sqlMapConfig.xml的小細(xì)節(jié)摩骨。
UserMapper.xml中,
<mapper namespace="UserMapper">
改為
<mapper namespace="com.test.mapper.UserMapper">
朗若。
sqlMapConfig.xml中仿吞,
<mappers>
<mapper resource="com/test/mapper/UserMapper.xml"/>
</mappers>
改為
<mappers>
<package name="com.test.mapper"/>
</mappers>
。
進(jìn)行測(cè)試捡偏。
測(cè)試結(jié)果