SpringBoot与MybatisPlus SpringBoot(三)

简介: SpringBoot与MybatisPlus SpringBoot(三)

6.10 URL写法

在Thymeleaf中路径的写法为@{路径}

<a th:href="@{http://www.baidu.com}">百度</a>

静态传参

1、控制器

//访问index.html
        @RequestMapping("/index")
        public void index(){ }
      // 返回json格式的数据
      @GetMapping("/show")
      @ResponseBody
      public String showPage(String id,String name){
          return id + "-" + name;
      }

2、html

<a th:href="@{show?id=1&name='张三'}">静态传参1</a>
<a th:href="@{show(id=2,name=lisi)}">静态传参2</a>

动态传参

1、控制器

//访问index.html
        @RequestMapping("/index")
        public void index(Model model){
            model.addAttribute("id",1);
            model.addAttribute("name", "张三 ");
        }
      // 返回json格式的数据
      @GetMapping("/show")
      @ResponseBody
      public String showPage(String id,String name){
          return id + "-" + name;
      }

2、html

<a th:href="@{'show?id='+${id}+'&name='+${name}}">动态传参1</a>
<a th:href="@{show(id=${id},name=${name})}">动态传参2</a>

6.11 RESTful风格URL写法

1、控制器

//访问index.html
        @RequestMapping("/index")
        public void index(Model model){
            model.addAttribute("id",1);
            model.addAttribute("name", "张三 ");
        }
      // restful风格
      @GetMapping("/show/{id}/{name}")
      @ResponseBody
      public String showPage(@PathVariable  String id, @PathVariable String name){
          return id + "-" + name;
      }

2、html

<a th:href="@{show/{id}/{name}(id=${id},name=${name})}">restful风格传参</a>

6.12 Thymeleaf相关配置

在Springboot配置文件中可以进行Thymeleaf相关配置,但是一般不需要配置,使用默认的就行

配置项 含义
spring.thymeleaf.prefix 视图前缀
spring.thymeleaf.suffix 视图后缀
spring.thymeleaf.encoding 编码格式
spring.thymeleaf.servlet.content-type 响应类型
spring.thymeleaf.cache=false 页面缓存,配置为false则不启用页面缓存,方便测试
spring:
  thymeleaf:
   prefix: classpath:/templates/
   suffix: .html
   encoding: UTF-8
   cache: false
   servlet:
    content-type: text/html

七、SpringBoot热部署

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

1、添加DevTools依赖

<!-- 热部署工具 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional>
</dependency>

2、在idea中设置自动编译

点击File-->Settings

3、在Idea设置自动运行

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

八、SpringBoot整合Mybatis

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

1、准备数据库

2、创建SpringBoot项目,添加MyBatis起步依赖和Mysql驱动依赖

3、编写实体类

public class User {
    private int id;
    private String username;
    private String sex;
    private String address;
    private int account;
}

4、编写Mapper接口

@Mapper
public interface UserMapper {
    List<User> findUsers();
}

5、在resources目录下编写mapper映射文件(接口和映射文件所在的文件的路径保持一致,并且映射文件所在的目录文件要一级一级建)

<?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.zj.mapper.UserMapper">
    <select id="findUsers" resultType="com.zj.pojo.User">
          select * from user;
    </select>
</mapper>

6、编写配置文件

#数据源
spring:
  datasource:
    driver-class-name:  com.mysql.cj.jdbc.Driver
    url: jdbc://mysql:///mybatis?serverTimezone=UTC
    username: root
    password: 123456
mybatis:
  #Mybatis配置映射文件的位置
  mapper-locations: com/zj/mapper/*Mapper.xml
  #实体类起别名
  type-aliases-package: com.zj.pojo
#日志格式
logging:
  pattern:
    console: '%d{HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n'

7、编写测试类

package com.zj.mapper;
import com.zj.mapper.UserMapper;
import com.zj.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import java.util.List;
@SpringBootTest //springboot测试类注解,在运行测试代码时加载容器
public class UserMapperTest {
    @Resource
    private UserMapper userMapper;
     @Test
    public void testUsers(){
         List<User> users = userMapper.findUsers();
         for (User user : users) {
             System.out.println(user);
         }
     }
}

九、参SpringBoot参数校验

9.1 校验简单数据类型

SpringBoot自带了validation工具可以从后端对前端传来的参数进行校验,用法如下:

1、引入validation起步依赖,或者在创建项目的时候引入该模块。

2、控制器

@Controller
@Validated  //该控制器开启参数校验
public class TestController {
    @RequestMapping("/test1")
    @ResponseBody
    //在参数校验,表示该参数不为空。当参数为空时会报异常
    public String test1(@NotBlank(message = "用户名不能为空") String name){
        return "test1:"+name;
    }
}

9.2 异常处理

当抛出ConstraintViolationException异常后,我们可以使用SpringMVC的异常处理器,也可以使用SpringBoot自带的异常处理机制。

当程序出现了异常,SpringBoot会使用自带的BasicErrorController对象处理异常。该处理器会默认跳转到/resources/templates/error.html页面()。

1、引入依赖,在参数校验的基础上还需要thymeleaf依赖。

2、编写错误页面

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>错误页面</title>
</head>
<body>
只要出现异常都会跳转到该页面
<h1>服务器开小差了!</h1>
</body>
</html>

3、控制器

@Controller
@Validated  //该控制器开启参数校验
public class TestController {
    @RequestMapping("/test1")
    @ResponseBody
    //在参数校验,表示该参数不为空。当参数为空时会报异常
    public String test1(@NotBlank(message = "用户名不能为空") String name){
        return "test1:"+name;
    }
}

4、访问

相关文章
|
1月前
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
29 0
|
2天前
|
JSON Java 数据格式
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
|
12天前
|
Java 数据库连接 数据库
Springboot整合mybatisPlus开发
MyBatis-Plus是一个MyBatis的增强工具,旨在简化开发和提高效率。它在不修改原有MyBatis的基础上提供额外功能。要将MyBatis-Plus集成到SpringBoot项目中,首先通过Maven添加mybatis-plus-boot-starter和相应数据库驱动依赖,然后配置application.yml中的数据库连接信息,并指定Mapper类的扫描路径。Mapper接口可继承BaseMapper实现基本的CRUD操作。
|
12天前
|
XML Java 数据库连接
Springboot整合mybatisPlus操作数据库
MyBatis-Plus是MyBatis的增强工具,简化开发、提高效率。它提供官网文档,便于集成到SpringBoot项目中。集成步骤包括添加mybatis-plus-boot-starter和数据库驱动依赖,配置数据源,扫描Mapper类包。Mapper接口继承BaseMapper即可使用基本的CRUD操作。示例代码展示了Service层的增删改查实现。MyBatisPlus还支持逻辑删除、自动填充等功能,同时可与Mybatis XML配合使用,通过调整配置指定XML映射文件位置。
|
1月前
|
开发框架 Java 测试技术
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
XwFast,我开发了一个基于SpringBoot和MyBatisPlus的敏捷开发框架!
33 1
|
1月前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
1月前
|
数据库
Springboot+mybatis-plus逆向工程生成代码器
Springboot+mybatis-plus逆向工程生成代码器
|
2月前
|
Java fastjson Apache
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
Spring Boot+Gradle+ MyBatisPlus3.x搭建企业级的后台分离框架
37 1
|
2月前
|
安全 算法 Java
SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
29 0
|
2月前
|
Java 关系型数据库 MySQL
springboot+mybatis-plus实例demo
springboot+mybatis-plus实例demo
31 0