spring-mybatis整合
Posted hellobeicheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring-mybatis整合相关的知识,希望对你有一定的参考价值。
整合必备的依赖
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
</dependencies>
首先我的mybatis-config.xml文件如下
其中的环境配置都整合到spring配置文件中了
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="zh.pojo"/>
</typeAliases>
</configuration>
spring 配置文件
- spring-mybatis.xml
上方mybatis的一些数据被挪到这里了,然后这里一般就是固定套路了。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="125890"/>
</bean>
这是数据源可以替换
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:zh/dao/*.xml"/>
</bean>
这是必须的一个类 里面的属性 configLocation是关联上方mybatis的配置文件
属性 mapperLocation 相当于 mybatis配置中的映射器mappers的作用
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
这是生成sqlSession的bean 当然如果实现类继承SqlSessionDaoSupport时这个bean可以省略在下方有实例
</beans>
applicationContext.xml
这是被直接读取的spring配置
一般装配一些类会在这里添加
<?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
https://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/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<import resource="spring-mybatis.xml"/>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="txPointCut" expression="execution(* zh.dao.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config>
<bean id="userMapper" class="zh.dao.UserMapperImpl">
<property name="sqlSession" ref="sqlSession"/>
</bean>
<bean id="userMapper2" class="zh.dao.UserMapper2">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
</beans>
可以看到上面图一,图二的不同之处
图一我能自己写了一个sqlSession的setter,而图二继承了一个父类,父类中有一个sqlSessionFactory的setter
因此可以省去配置 sqlSessionTemplate的步骤。
以上是关于spring-mybatis整合的主要内容,如果未能解决你的问题,请参考以下文章
最新最全面的Spring详解——Spring-Mybatis整合
Spring-Mybatis --- 配置SqlSessionFactoryBean,整合Spring-Mybatis(转)