• SpringBoot热部署和整合Mybatis


    目录

    一、SpringBoot热部署

    1.1 添加DevTools依赖

    1.2 在idea中设置自动编译

    1.3 在Idea设置自动运行

    二、SpringBoot整合Mybatis

    2.1 准备数据

    2.2 添加相关依赖

    2.3 在配置文件进行数据源配置

    2.4 编写Mapper接口和Mapper文件

    2.5 测试


    一、SpringBoot热部署

    热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。即修改完代码后不需要重启项目即可生效。在SpringBoot中,可以使用DevTools工具实现热部署

    1.1 添加DevTools依赖

    首先我们需要在pom文件中引入devtools的依赖,如下:



        org.springframework.boot
        spring-boot-devtools
        true

    1.2 在idea中设置自动编译

    点击 File-->Settings

    如上图,勾选上。 

    1.3 在Idea设置自动运行

    快捷键 Ctrl+Shift+Alt+/ 后点击 Registry ,勾选complier.automake.allow.when.app.running

    然后我们来测试一下,运行项目,然后在运行时往/show2路径修改输出看看是否不用重启项目也能发生改变。

    修改之后,在控制台可以看到:重新运行了一下项目。

    并且再次访问可以出现我们新添加的数据

    则说明我们的热部署生效

    二、SpringBoot整合Mybatis

    Spring整合MyBatis时需要进行大量配置,而SpringBoot整合MyBatis则可以简化很多配置:

    2.1 准备数据

    1. -- ----------------------------
    2. -- Table structure for student
    3. -- ----------------------------
    4. DROP TABLE IF EXISTS `student`;
    5. CREATE TABLE `student` (
    6. `id` int NOT NULL AUTO_INCREMENT,
    7. `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
    8. `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
    9. `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
    10. PRIMARY KEY (`id`) USING BTREE
    11. ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
    12. -- ----------------------------
    13. -- Records of student
    14. -- ----------------------------
    15. INSERT INTO `student` VALUES (1, 'LYL', '男', '广州');
    16. INSERT INTO `student` VALUES (2, 'HQX', '女', '揭阳');

     添加pojo类:

    package com.example.springbootdemo3.pojo;

    public class Student {

        private int id;
        private String name;
        private String sex;
        private String address;

        public Student() {
        }

        public Student(int id, String name, String sex, String address) {
            this.id = id;
            this.name = name;
            this.sex = sex;
            this.address = address;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getSex() {
            return sex;
        }

        public void setSex(String sex) {
            this.sex = sex;
        }

        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }

        @Override
        public String toString() {
            return "Student [" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", sex='" + sex + '\'' +
                    ", address='" + address + '\'' +
                    " ]";
        }
    }

    2.2 添加相关依赖

    那么这里我们需要添加Mysql驱动和Mabatis依赖


        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        2.3.0


        mysql
        mysql-connector-java
        runtime

    2.3 在配置文件进行数据源配置

    然后在配置文件进行如下配置,配置数据源和sql日志输出

    # 配置数据源
    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql:///student?serverTimezone=UTC
        username: root
        password: 666666

    # mybatis配置
    mybatis:
      # 映射文件位置
      mapper-locations: com/example/springbootdemo3/mapper/*Mapper.xml
      # 别名
      type-aliases-package: com.example.springbootdemo3.pojo

    #日志格式
    logging:
      pattern:
        console: '%d{YYYY-MM-dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread]%cyan(%-50logger{50}):%msg%n'

    2.4 编写Mapper接口和Mapper文件

    然后新建一个mapper包,里面新建一个StudentMapper接口

    1. package com.example.springbootdemo3.mapper;
    2. import com.example.springbootdemo3.pojo.Student;
    3. import org.apache.ibatis.annotations.Mapper;
    4. import java.util.List;
    5. @Mapper
    6. public interface StudentMapper {
    7. List findAll();
    8. }

    这里还要在resources目录下新建一个与StudentMapper同级目录和同名的.xml文件

    内容如下:


            PUBLIC "-//mybatis.org//DTD Mapper3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

       

    2.5 测试

    OK,从上面我们已经新建了一个查询所有的方法啊,现在在测试类我们看看能否成功获取数据库信息。测试类代码如下:

    1. package com.example.springbootdemo3.mapper;
    2. import com.example.springbootdemo3.pojo.Student;
    3. import org.junit.jupiter.api.Test;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.boot.test.context.SpringBootTest;
    6. import java.util.List;
    7. @SpringBootTest
    8. public class StudentMapperTest {
    9. @Autowired
    10. private StudentMapper studentMapper;
    11. @Test
    12. public void testFindAll(){
    13. List students = studentMapper.findAll();
    14. students.forEach(System.out::println);
    15. }
    16. }

    OK,可以看到也是能够成功获取信息的。

  • 相关阅读:
    竞品价格怎么监测
    操作系统4小时速成:进程管理占考试40%,进程状态,组织,通信,线程拥有调度,进程拥有资源,进程和线程的区别
    overleaf 写论文Latex语法记录
    常见 HTTP 状态码详解与Nginx 文件上传大小限制
    时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力
    上海老年大学app开发,岁月如歌,欢笑永远
    Object方法实践之对象数组转化
    Kakfa - Producer机制原理与调优
    HTML5文旅文化旅游网站模板源码
    UNIAPP实战项目笔记40 设置和地址的页面布局
  • 原文地址:https://blog.csdn.net/qq_53317005/article/details/133198911