Spring整合Mybatis(略详细)

本篇请配合上一篇MyBatis入门案例食用,效果更香哦

为什么需要整合

  • 根据MyBatis的入门案例可知,目前我们是需要手动的自己获取SqlSessionFactory,然后自己来获取Session对象的,这无疑非常麻烦
  • Spring框架的核心就是减少自己new对象这个过程,所以我们将SqlSessionFactory托管给Spring容器,避免自己频繁调用

大致整合框架

Spring整合mybatis依赖的是第三方的jar包

  • 创建maven工程
  • 添加需要的依赖包
  • 搭建三层架构
  • 配置数据源
  • 配置session工厂,依赖于第三方的jar包
  • 编写mapper的映射文件
  • 配置代理接口的路径
  • 配置mapper映射文件的路径
  • 使用接口查询

接下来就是每步的详细步骤

创建一个maven工程

在其他文章里已经多次提过通过cmd命令行的方式进行新建工程,这里就不再赘述

整个项目的完整目录结构如下:
在这里插入图片描述

添加依赖 (修改pom.xml文件)

<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.dean</groupId>
  <artifactId>SpringMybatis</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>SpringMybatis</name>
  <url>http://maven.apache.org</url>

  <!--1、更改版本 添加依赖-->
  <!--版本-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <!--依赖-->
  <dependencies>
    <!--junit 单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
    </dependency>
    <!--mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.2</version>
    </dependency>
    <!--数据库连接-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.19</version>
    </dependency>
    <!--配置bean-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.1.7.RELEASE</version>
    </dependency>
    <!--IOC DI-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.1.7.RELEASE</version>
    </dependency>
    <!--上下文-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.7.RELEASE</version>
    </dependency>
    <!--aop-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>5.1.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>   <!--版本要对-->
      <artifactId>spring-jdbc</artifactId>
      <version>5.1.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-dbcp2</artifactId>
      <version>2.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.6</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.3.29.RELEASE</version>
    </dependency>

    <!--本次新增 mybatis-spring-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>
  </dependencies>
</project>

搭建三层架构

搭建AppConfig(配置类) UserController(控制器)UserService(服务层)Application(启动类)框架

AppConfig
在这里插入图片描述
UserController
在这里插入图片描述

UserService
在这里插入图片描述
在这里插入图片描述

Application
在这里插入图片描述

配置数据源

资源文件data.properties存储数据库连接的必要参数

在这里插入图片描述
后在AppConfig(配置类)中配置数据 源

在这里插入图片描述

配置Session工厂

首先添加第三方jar包 mybatis-Spring
在这里插入图片描述
在配置类里将sqlSessionFactoryBean托管给Spring容器
框架将代理接口的对象注入到spring容器中
在这里插入图片描述

编写Mapper映射文件

Mybatis中怎么写,这里就怎么写
在src中创建UserMapper接口,在资源文件中创建UserMapper.xml
额外要用的是一个User javaBean

User
在这里插入图片描述
UserMapper
在这里插入图片描述
UserMapper.xml
在这里插入图片描述

配置代理接口的路径

在配置类上加一个注解即可
在这里插入图片描述

配置mapper映射文件的路径

在配置类中
在这里插入图片描述

使用接口查询

完善三层架构的代码
UserController
在这里插入图片描述
UserService
在这里插入图片描述

在这里插入图片描述
Application
在这里插入图片描述

最终运行结果如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值