Spring篇--09 Spring与MyBatis的整合

Spring篇--09 Spring与MyBatis的整合

一、编程步骤

step1:导包

spring-webmvc,mybatis,mybatis-spring,spring-jdbc,dbcp,mysql-connector,junit

     

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.lcz</groupId>
  <artifactId>mybatis_day01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
  
  	 <dependency>
	  <groupId>org.springframework</groupId>
	  <artifactId>spring-webmvc</artifactId>
	  <version>4.1.8.RELEASE</version>
	</dependency>
  	<dependency>
	  <groupId>org.mybatis</groupId>
	  <artifactId>mybatis</artifactId>
	  <version>3.4.6</version>
	</dependency>
	<dependency>
	  <groupId>org.mybatis</groupId>
	  <artifactId>mybatis-spring</artifactId>
	  <version>1.3.0</version>
	</dependency>
	
	<dependency>
	  <groupId>org.springframework</groupId>
	  <artifactId>spring-jdbc</artifactId>
	  <version>4.1.8.RELEASE</version>
	</dependency>
	<dependency>
   	 <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.25</version>
	</dependency> 	
	<dependency>
	  <groupId>commons-dbcp</groupId>
	  <artifactId>commons-dbcp</artifactId>
	  <version>1.4</version>
	</dependency>
	<dependency>
	 	<groupId>junit</groupId>
	 	<artifactId>junit</artifactId>
	 	<version>3.8.1</version>
	 </dependency>
	
  </dependencies>
</project>

step2:添加spring的配置文件

注:mybatis的配置信息可以添加到spring的配置文件当中。(只需要配置SqlSessionFactoryBean)

<?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:beans="http://www.springframework.org/schema/beans" 
	xmlns:context="http://www.springframework.org/schema/context" 
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
	xmlns:jee="http://www.springframework.org/schema/jee" 
	xmlns:jms="http://www.springframework.org/schema/jms"
	xmlns:lang="http://www.springframework.org/schema/lang"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	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-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
		http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.2.xsd
		http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.2.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
		">	
	<!-- 配置连接池 -->
	<util:properties id="config" location="classpath:db.properties"/>
	<!--配置连接池  -->
	<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="#{config.driver}"/>
		<property name="url" value="#{config.url}"/>
		<property name="username" value="#{config.username}"/>
		<property name="password" value="#{config.password}"/>
	</bean>
	<!-- 配置SqlSessionFactoryBean -->
	<!-- spring集成mybatis,不再需要mybatis的配置文件,使用SqlSessionFactoryBean来代替mybatis的配置文件 -->
	<bean id="ssfb" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 注入连接池 -->
		<!-- 不再使用mybatis自带的连接池,而是使用spring管理的连接池 -->
		<property name="dataSource" ref="ds"/>
		<!-- 映射文件的位置 -->
		<property name="mapperLocations" value="classpath:entity/*.xml"/>
	</bean>
	


step3:实体类

step4:映射文件

step5:Mapper映射器

这三步同上述

step6:在spring的配置文件中,添加MapperScannerConfigure。该bean负责负责调用SqlSessio的getMapper方法,创建符合Mapper映射器要求的对象。注:该bean会将这个对象添加到spring容器里面,

<!-- 配置MapperScannerConfigurer -->
	<!-- MapperScannerConfigure负责扫描指定包下所有的Mapper映射器,然后生成符合这些接口要求的对象
	(其实就是调用SqlSession的getMapper方法。)另外,还会将这些对象添加到spring容器里面。(默认id是首字母小写的接口名)
	@Respository来设置id -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- Mapper映射器所在的包 -->
		<property name="basePackage" value="dao"/>
	</bean>
</beans>






step7:测试类

 

package test;

import java.util.List;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import dao.EmpDao;
import entity.Emp;

public class TestCase {
	private EmpDao dao;
	@Before
	public void init() {
		ApplicationContext ac=new ClassPathXmlApplicationContext("spring_mvc.xml");
		dao = ac.getBean("eDao",EmpDao.class);
	}
	@Test
	public void test1() {
		Emp emp=new Emp();
		emp.setName("rose");
		emp.setAge(24);
		dao.save(emp);
	}
	@Test
	public void test2() {
		List<Emp> emps = dao.findAll();
		System.out.println(emps);
	}
}

二、只扫描特定的Mapper映射器

step1:开发一个注解,比如@MyBatisRepository

package annotations;

public @interface MyBatisRepository {
	
}

step2:将该注解添加到需要扫描的映射器

@Repository("eDao")
@MyBatisRepository
public interface EmpDao {
	public void save(Emp emp);
	public List<Emp> findAll();
	public Emp findById(int id);
	public void modify(Emp e);
	public void delete(int id);
}

step3:配置MapperScannerConfigurer,设置annotationClass,指定注解类

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- Mapper映射器所在的包 -->
		<property name="basePackage" value="dao"/>
		<!-- 只扫描特定的接口 -->
		<property name="annotationClass" value="annotations.MyBatisRepository"/>
	</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值