Mybatis与Spring框架的整合

2021-07-08
0

1、下载MyBatis与Spring整合jar包(整合的核心jar包):

      a、点击https://github.com/mybatis/spring链接。

      b、点击上图紫框框起位置即可到达下载jar包页面。

2、在这篇博客(https://blog.csdn.net/qq_42865575/article/details/97022260)的java项目的基础上,导入相应jar包并为该工程创建Spring配置文件:

3、在Spring配置文件中添加如下配置信息:(因为在该文件中连接数据库,可将上面所提到博客中的mybatis-config.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:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置数据库连接信息 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
	<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
	<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/register"></property>
	<property name="username" value="root"></property>
	<property name="password" value="root"></property>
</bean>

<!--创建SqlSessionFactory对象  -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
    <!-- 指定数据源,此时mybatis-config.xml中environments标签将不再起作用。注意:dataSource属性必须配置,即MyBatis和Spring整合后,将不再使用mybatis-config.xml全局配置文件中数据库配置 -->
	<property name="dataSource" ref="dataSource"></property>
    <!-- configLocation指定全局配置文件位置 -->
	<property name="configLocation" value="classpath:mybatis-config.xml"></property>
    <!--mapperLocations: 指定XML 映射文件位置,此时可以将mybatis-config.xml文件mappers标签删掉-->
	<property name="mapperLocations" value="classpath:sql/*.xml"></property>
</bean>

<!-- 扫描指定包及其子包下的mapper接口并生成响应代理对象;base-package:指定mapper接口的包名 注意:该标签只对接口感冒! -->
<mybatis-spring:scan base-package="com.zzu"/>
</beans>

<!-- context:component-scan标签作用如下:
	扫描其base-package标签属性值指定的包内的类、实例化被@Component、@Repository、@Service或@Controller等类注解所注解的类以及为这些类中有@Autowired、 @Resource 或@Inject注解的属性赋值。 -->
<context:component-scan base-package="com.zzu" />
<mybatis-spring:scan base-package="com.zzu"/>

等效于如下配置:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="com.zzu"></property>

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"></property>

</bean>

注意

1、如果使用MapperScannerConfigurer方式确定为哪些接口生成代理对象,则必须先配置org.mybatis.spring.SqlSessionFactoryBean

4、写一个Test类进行测试

package com.zzu.test;

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zzu.area.IAreaDao;

public class Test {
	public static void main(String[] args) throws IOException{
		ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");
		IAreaDao areaDao = applicationContext.getBean(IAreaDao.class);
		System.out.println(areaDao.getClass().getName());
		applicationContext.close();
	}
}

输出结果:

com.sun.proxy.$Proxy8

分析:areaDao是动态代理对象,且使用的是JDK动态代理。

https://blog.csdn.net/qq_42865575/article/details/97027531

相关信息

评论