Spring整合MyBatis

1. Spring可以对MyBatis提供哪些支持?

Spring两大核心思想:IoC 和 AOP
IoC : 控制反转,Spring容器可以完成对象的创建、属性注入、对象管理等工作
AOP : 面向切面,在不修改原有业务逻辑的情况下,实现原有业务的增强

  • IoC支持 SpringIoC 可以为MyBatis完成DataSource、SqlSessionFactory、SqlSession以及DAO对
    象的创建
  • AOP支持使用Spring提供的事务管理切面类完成对MyBatis数据库操作中的事务管理

2 Spring整合MyBatis准备工作

2.1 创建Maven工程

2.2 部署MyBatis框架

  • 添加依赖

    • Mysql驱动
    • mybatis
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    
  • 创建MyBatis配置文件(创建配置文件之后无需进行任何配置,有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>
    
    </configuration>
    

2.3 部署Spring框架

  • 添加依赖

    • context
    • aspects
    • jdbc
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.13.RELEASE</version>
    </dependency>
    
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>5.2.13.RELEASE</version>
    </dependency>
    
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.13.RELEASE</version>
    </dependency>
    
  • 创建Spring配置文件:applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>

2.4 添加Spring整合MyBatis的依赖

mybatis-spring 就是mybatis提供的兼容Spring的补丁

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.3.2</version>
</dependency>

3. Spring整合MyBatis整合IoC配置

3.1 整合Druid连接池

  • 添加druid的依赖

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
    </dependency>
    
  • 创建druid.properties属性文件

    druid.driver=com.mysql.jdbc.Driver
    druid.url=jdbc:mysql://localhost:3306/db_2010_mybatis?characterEncoding=utf-8
    druid.username=root
    druid.password=admin123
    
    ## 连接池参数(可选)
    druid.pool.init=1
    druid.pool.minIdle=3
    druid.pool.maxActive=20
    druid.pool.timeout=30000
    
  • 在applicationContext.xml中配置DruidDataSource

    <!--加载druid.properties属性文件-->
    <context:property-placeholder location="classpath:druid.properties"/>
    <!--依赖Spring容器完成数据源DataSource的创建-->
    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
      <property name="driverClassName" value="${druid.driver}"/>
      <property name="url" value="${druid.url}"/>
      <property name="username" value="${druid.username}"/>
      <property name="password" value="${druid.password}"/>
      <property name="initialSize" value="${druid.pool.init}"/>
      <property name="minIdle" value="${druid.pool.minIdle}"/>
      <property name="maxActive" value="${druid.pool.maxActive}"/>
      <property name="maxWait" value="${druid.pool.timeout}"/>
    </bean>
    

3.2 整合MyBatis—创建SqlSessionFactory

  • 依赖Spring容器创建MyBatis的SqlSessionFactory对象

    <!--依赖Spring容器完成MyBatis的SqlSessionFactory对象的创建-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
      <!--配置数据源-->
      <property name="dataSource" ref="druidDataSource"/>
      <!--配置mapper文件的路径-->
      <property name="mapperLocations" value="classpath:mappers/*Mapper.xml"/>
      <!--配置需要定义别名的实体类的包-->
      <property name="typeAliasesPackage" value="com.cg.pojo"/>
      <!--可选:配置MyBatis的主配置文件(mybatis大部分功能被spring托管,但有一部分依旧需要mybatis配置)-->
      <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>
    

3.3 整合MyBatis-创建Mappe

<!--加载dao包中的所有DAO接口,通过sqlSessionFactory获取SqlSession,然后创建所有的DAO接口
对象,存储在Spring容器-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
  <property name="basePackage" value="com.cg.dao"/>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值