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


    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

    在这里插入图片描述

    
    DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.muge.mapper.EmpMapper">
    
        
        <select id="getEmps" resultType="Emp">
            select * from emp;
        select>
    
        
        <insert id="addEmp" parameterType="Emp">
            insert into emp (empName,age,sex,email,did) values (#{empName},#{age},#{sex},#{email},#{did})
        insert>
    
        
        <delete id="deleteById" parameterType="java.lang.Integer">
            delete from emp where eid=#{eid}
        delete>
    
        
        <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(二)

  • 相关阅读:
    【Spring】Spring(IoC、AOP、Bean生命周期、事务、三级缓存、源码)面试题
    解决docker运行elastic服务端启动不成功
    涂鸦智能物联网平台初探
    函数指针知识点记录
    uniapp 学习笔记二十四 购物车编辑弹窗页面搭建
    无线耳机的音质正在发生怎样变化?唯样商城
    【图像分割】图像分割质量分数,如 TP、FP、TN、FN、Accuracy、Sensitivity、Precision、MCC、Dice、Jaccard
    Visual Studio 常用快捷键
    【MySQL】读写分离&主从复制
    【EI会议征稿】第三届电子信息工程与计算机通信国际学术会议(EIECC 2023)
  • 原文地址:https://blog.csdn.net/u013010499/article/details/126014067