Spring整合Mybatis【自动扫描方式】

一、Spring配置文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:tx="http://www.springframework.org/schema/tx"
	   xmlns:jpa="http://www.springframework.org/schema/data/jpa"
	   xmlns:p="http://www.springframework.org/schema/p"
	   xmlns:redis="http://www.springframework.org/schema/redis"
	   xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	   xsi:schemaLocation="http://www.springframework.org/schema/tx 
						   http://www.springframework.org/schema/tx/spring-tx.xsd
						   http://www.springframework.org/schema/beans 
						   http://www.springframework.org/schema/beans/spring-beans.xsd
						   http://www.springframework.org/schema/data/jpa
						   http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
						   http://www.springframework.org/schema/context
						   http://www.springframework.org/schema/context/spring-context.xsd
						   http://www.springframework.org/schema/redis  
        				   http://www.springframework.org/schema/redis/spring-redis.xsd 
        				   http://www.springframework.org/schema/aop 
        				   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

	<context:annotation-config />

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url"
			value="jdbc:mysql://192.168.1.241:3306/test?useUnicode=true&characterEncoding=UTF-8" />
		<property name="username" value="cfwx" />
		<property name="password" value="123456" />
	</bean>


	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:mybatis_configuration.xml" />
		<property name="mapperLocations" value="classpath:dao/mapper/*.xml"/>
	</bean>
	
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">   
          <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />   
    </bean>

	<!-- <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">  
	    <property name="mapperInterface" value="dao.UserDao"/>  
	    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>  
	</bean> -->
	
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="dao" />
		<property name="markerInterface" value="dao.SqlMapper" />
	</bean>
	
</beans>

二、SqlMapper.java

package dao;

public interface SqlMapper {

}

三、UserDao

public interface UserDao extends SqlMapper{

	//public List<User> searchUser();
	public User searchUser();
}

四、UserDaoImpl

public class UserDaoImpl implements UserDao{

	//private UserDao userDao;
	@Resource
	private SqlSessionTemplate sqlSessionTemplate;
	
	@Autowired
	private UserDao userDao;

	@Override
	public User searchUser() {
		// TODO Auto-generated method stub
		System.out.println(sqlSessionTemplate==null);
		//User user = sqlSessionTemplate.selectOne("dao.UserDao.searchUser");
		User user = userDao.searchUser();
		System.out.println(user.getUsername());
		return user;
	} 
	
}

五、测试

注意:需要通过SpringJunit才能测试成功,如果测试方法和上一篇的测试方法一样,在main方法中直接调用,会包空指针异常

SpringJunit需要的jar包:hamcrest-core-1.3.jar、junit-4.11.jar、spring-test.jar

@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration(locations={"classpath:myspring.xml"})  
public class UserServiceTest{
	@Resource
	private SqlSessionTemplate sqlSessionTemplate;
	
	@Autowired
	private UserDao userDao;
    
    @Test  
    public void testBatchDelete() {  
	//User user = sqlSessionTemplate.selectOne("dao.UserDao.searchUser");
	User user = userDao.searchUser();
	System.out.println(user.getUsername());
    } 
}

六、项目结构图

七、所需jar包

与上篇文章jar包相同,只是多了hamcrest-core-1.3.jar、junit-4.11.jar、spring-test.jar这3个springJunit测试包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值