当前位置:   article > 正文

SpringBoot2入门必读(4):Spring boot集成Mybatis(一)_spring+mybatis boot2

spring+mybatis boot2

SpringBoot2入门必读(4):Spring boot集成Mybatis

Mybatis特点

  • 半自动的ORM框架,即根据Entity自动映射数据库中的table。
  • 支持原生sql,也可以通过xml进行编写,通过xml编写可以使sql和代码分离。
  • 在springboot中不需要过多的配置就可以访问数据库

Mybatis项目结构

在这里插入图片描述

创建一个Mybatis项目

首先引入依赖

<dependencies>
        <!-- SpringBoot集成mybatis框架 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.spring.boot.starter.version}</version>
        </dependency>
            <!-- junit测试 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- MySQL驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.25</version>
            </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>
 <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--阿里数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>${druid.spring.boot.starter.version}</version>
        </dependency>
    </dependencies>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

配置数据连接和Mybatis相关配置项

# 数据源配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    druid:
      url: jdbc:mysql://192.168.1.4:3306/mybatis?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
      username: root
      password: 123456
      # 初始连接数
      initialSize: 5
      # 最小连接池数量
      minIdle: 10
      # 最大连接池数量
      maxActive: 20
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      # 配置一个连接在池中最大生存的时间,单位是毫秒
      maxEvictableIdleTimeMillis: 900000


# MyBatis配置
mybatis:
  # 搜索指定包别名
  typeAliasesPackage: com.muge.pojo
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mappers/*Mapper.xml
  # 全局配置
  configuration:
    #    驼峰式命名
    map-underscore-to-camel-case: true
    #    全局映射器启用缓存
    cache-enabled: true
    #     允许 JDBC 支持自动生成主键
    use-generated-keys: true
    #    配置默认的执行器
    default-executor-type: reuse
    #     指定 MyBatis 所用日志的具体实现
    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

创建一个EmpService接口

这个接口供EmpController调用,里面分别有Emp的增删改查操作
在这里插入图片描述

创建一个EmpServiceImpl

这个类用于实现EmpService接口
在这里插入图片描述

创建EmpMapper

这个Mapper会被mybatis扫描到
在这里插入图片描述

扫描Mapper(扫描像上面的EmpMapper)

@Configuration:这个代表类是配置类
@MapperScan(“com.muge.mapper”):// 指定要扫描的Mapper类的包的路径
在这里插入图片描述

编写内容Sql

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muge.mapper.EmpMapper">

    <!--
        1、查询用 select标签
        2、id直接用EmpMapper中对应接口的名字
        3、resultType用来返回查询的类型,在这里是Emp,因为application.yml配置了,没配置需要用com.muge.pojo.Emp,也就是用实体的全路径
    -->
    <select id="getEmps" resultType="Emp">
        select * from emp;
    </select>

    <!--
       1、插入用 insert标签
       2、parameterType代表传入参数的类型
   -->
    <insert id="addEmp" parameterType="Emp">
        insert into emp (empName,age,sex,email,did) values (#{empName},#{age},#{sex},#{email},#{did})
    </insert>

    <!--
      1、删除用 delete标签
      2、parameterType代表传入参数的类型
    -->
    <delete id="deleteById" parameterType="java.lang.Integer">
        delete from emp where eid=#{eid}
    </delete>

    <!--
      1、更新用 update标签
      2、parameterType代表传入参数的类型
    -->
    <update id="updateEmp" parameterType="Emp">
        update emp set empName=#{empName} ,age=#{age},sex=#{sex} where eid=#{eid}
    </update>


    <insert id="addEmps" parameterType="java.util.ArrayList">
        insert into emp (empName,age,sex,email,did) values
        <foreach collection="list" index="index" separator="," item="item">
            (#{empName},#{age},#{sex},#{email},#{did})
        </foreach>
    </insert>

</mapper>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

使用swagger进行测试

swagger具体使用的介绍
下面就是swagger供我们调用的接口
在这里插入图片描述

首先调用addEmp

在这里插入图片描述

调用getEmps查看上面插入的数据

在这里插入图片描述

调用updateEmp对上面数据进行修改

在这里插入图片描述

调用getEmps查看上面修改的数据

下面的返回结果是已经修改的内容了,证明修改成功
在这里插入图片描述

调用deleteById删除一条数据

在这里插入图片描述

调用getEmps查看上面数据是否删除

返回结果为空,证明删除成功
在这里插入图片描述

SpringBoot2入门必读(4):Spring boot集成Mybatis(二)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/642908
推荐阅读
相关标签
  

闽ICP备14008679号