Spring整合Mybatis框架

配置 ApplicationContext.xml

  1. spring相关约束导入
    鼠标右键ApplicationContext.xml>>open with>>Spring Config Editor(安装spring sts)选择Namespaces勾选配置
    在这里插入图片描述
  2. 配置数据连接池
<context:property-placeholder location="db.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="User" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
</bean>
<!--使用context命名空间,通知Spring扫描知道包下所有bean类,进行注解解析-->
<context:component-scan base-package="Bean所在的包路径"/>
<!--启动基于注解的声明式AspectJ支持-->
<aop:aspectj-autoproxy/>

db.properties文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库表名
jdbc.username=root
jdbc.password=******`

  1. Mybatis相关配置
    (1)在ApplicationContext.xml中可利用mapper动态代理开发或mapper动态扫描开发,在实际开发过程中,一般使用动态扫描开发提高开发效率。
<!-- 配置mybatis sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"/>
	<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>


<!--  mapper动态扫描 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<property name="basePackage" value="com.mybatis.Mapper"/>
</bean>

<!-- mapper动态代理开发 -->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
	<!-- 注入sqlSessionFactory -->
	<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
	<!-- 配置接口 -->
	<property name="mapperInterface" value="com.mybatis.Mapper.UserMapper"/>
</bean>

(2)在mybatis-config.xml中只需配置别名和mapper映射即可

<?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>
	<typeAliases>
		<package name="com.mybatis.bean"/>
	</typeAliases>
  <mappers>
    <package name="com.mybatis.Mapper"/>
  </mappers>
</configuration>

(3)在service实例应用中,由于利用mapper动态扫描开发,所以利用注解方式获取mapper接口,之后调用定义方法查询sql语句。

@Resource(type=UserMapper.class)
	private UserMapper mapper;
	mapper.定义方法();
  1. Spring-aop事务配置
<!--事务核心管理器 -->

<bean name="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="update*" isolation="DEFAULT" propagation="REQUIRED" read-only="false"/>
		<!--   <...其他...>    -->
	</tx:attributes>
</tx:advice>

<!-- aop配置 -->

<aop:config>
	<aop:pointcut expression="execution(* com.SM.service.*Money.*(..))" id="pc"/>
	<aop:advisor advice-ref="txAdvice" pointcut-ref="pc"/>
</aop:config>

<!--
	注册事务管理器驱动
	<tx:annotation-driven transaction-manager="transactionManager"/>
-->

**

猜你喜欢

转载自blog.csdn.net/weixin_43217065/article/details/88703594