SpringBoot+MybatisPlus+Mysql+JSP实战

以下是关于SpringBoot+MybatisPlus+Mysql+JSP实战的完整攻略,内容包括环境搭建、数据库操作、页面渲染等:

环境搭建

  1. 安装JDK、Maven等开发环境。
  2. 创建一个SpringBoot项目,可以使用Spring Initializr或者IDEA等工具快速创建。
  3. 在项目的pom.xml文件中添加mybatis-plus和mysql依赖,如下所示:
<!-- mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.4.3.1</version>
</dependency>

<!-- mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>
  1. 配置MybatisPlus的配置文件,创建MybatisPlusConfig类并添加@Configuration注解,指定MybatisPlus的Mapper扫描路径,如下所示:
@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
}
  1. 配置Mysql的配置文件,创建application.yml(或application.properties)文件,并添加Mysql的连接信息,如下所示:
spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root

数据库操作

在这里提供两个MybatisPlus的示例,分别介绍如何生成代码和如何进行增删改查操作。

示例1:生成代码

MybatisPlus提供了代码生成器功能,可以快速生成Mapper、Service、Controller等层级的代码。具体步骤如下:
1. 创建自己的代码生成器类,如下所示:

public class CodeGenerator {

    public static void main(String[] args) {
        AutoGenerator generator = new AutoGenerator();

        generator.setGlobalConfig(new GlobalConfig().setOutputDir(System.getProperty("user.dir") + "/src/main/java")
                .setFileOverride(true)
                .setOpen(false)
                .setSwagger2(true)
                .setBaseResultMap(true)
                .setBaseColumnList(true)
                .setActiveRecord(false)
                .setAuthor("your name"));

        generator.setDataSource(new DataSourceConfig().setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai")
                .setDriverName("com.mysql.cj.jdbc.Driver")
                .setUsername("root")
                .setPassword("root"));

        generator.setStrategy(new StrategyConfig().setNaming(NamingStrategy.underline_to_camel)
                .setColumnNaming(NamingStrategy.underline_to_camel)
                .setTablePrefix("t_")
                .setInclude("user"));

        generator.setPackageInfo(new PackageConfig().setParent("com.example.demo")
                .setEntity("entity")
                .setMapper("mapper")
                .setService("service")
                .setServiceImpl("service.impl")
                .setController("controller"));

        generator.execute();
    }
}
  1. 运行生成器,即可在项目中自动创建对应的Mapper、Service、Controller等层级的代码。

示例2:增删改查操作

  1. 创建User实体类,如下所示:
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
}
  1. 创建UserMapper类,继承BaseMapper类,如下所示:
public interface UserMapper extends BaseMapper<User> {
}
  1. 在服务层创建UserService类,注入UserMapper类实例,并实现增删改查操作,如下所示:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
  1. 在控制器层创建UserController类,注入UserService类实例,并实现Restful接口,如下所示:
@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List<User> getAllUsers() {
        return userService.list();
    }

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getById(id);
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        userService.save(user);
        return user;
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        userService.updateById(user);
        return user;
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.removeById(id);
    }
}

至此,我们已经完成了一个基于SpringBoot、MybatisPlus、Mysql的增删改查操作,可以通过Postman等工具测试接口是否正常。

页面渲染

除了上面的Restful接口以外,我们还可以结合JSP等前端技术来进行页面渲染。具体步骤如下:

  1. 在pom.xml文件中添加SpringBoot的Web相关依赖,如下所示:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 在配置文件中添加JSP的路径,如下所示:
spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
  1. 在Controller类中增加一个jsp接口,如下所示:
@Controller
public class JspController {

    @RequestMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("name", "李四");
        return "hello";
    }
}
  1. 创建JSP页面,在src/main/webapp/WEB-INF/views目录下创建hello.jsp文件,如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <h1>Hello, ${name}!</h1>
</body>
</html>
  1. 启动应用程序,并在浏览器中访问http://localhost:8080/hello,即可在页面上看到Hello, 李四!的字样。

至此,我们已经学习了SpringBoot+MybatisPlus+Mysql+JSP实战的完整攻略,包括环境搭建、数据库操作、页面渲染等相关内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot+MybatisPlus+Mysql+JSP实战 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java深入讲解Object类常用方法的使用

    Java深入讲解Object类常用方法的使用攻略 介绍 在Java中,所有的类都默认继承自Object类,Object类是Java中非常重要的一个类。Object类中拥有很多方法,本攻略主要介绍Object类常用方法的使用。 常用方法列表 下面列举了Object类中的常用方法: equals(Object obj):判断对象是否相等。 toString():…

    Java 2023年5月26日
    00
  • java基础学习笔记之泛型

    Java基础学习笔记之泛型 简介 Java 泛型 (generics) 是 JDK 1.5 版本引入的一种数据类型,能够让程序员在编写代码时指定一些类型约束,可以更加简洁安全地使用泛型类型,提高代码的可读性和可维护性。 泛型的作用 泛型可以帮助程序员定义更加通用的代码模板,可以用来限定集合类的元素类型,避免运行时类型转换,提高程序的稳定性和效率。 泛型还可以…

    Java 2023年5月26日
    00
  • Java钩子方法概念原理详解

    Java钩子方法概念原理详解 Java中的钩子方法(Hook Method),顾名思义就是在某个阶段插入一些代码,以改变程序的控制流程或增加一些新的功能,从而达到在运行时改变程序行为的目的。 钩子方法原理 我们知道Java中有很多基础的类和接口,比如Thread类、WindowAdapter类、Servlet类等等,在这些类和接口中一般会预留一些钩子方法,等…

    Java 2023年5月26日
    00
  • 如何使用Java模拟退火算法优化Hash函数

    使用Java模拟退火算法优化Hash函数的完整攻略如下: 1. 了解退火算法基本原理 退火算法来源于物理学中的热力学原理,这个算法模拟了物质从高温到低温的过程,利用了概率方法找到全局最优解。 退火算法的基本步骤如下: 初始化温度和初始状态 外层循环直到达到停止条件 内层循环直到达到迭代条件 在当前状态的邻域内随机选择一个新状态 计算新状态的能量 判断是否接受…

    Java 2023年5月19日
    00
  • spring framework体系结构及模块jar依赖关系详解

    Spring Framework是一个开放源代码的轻量级应用程序框架。它是为了解决企业级应用程序开发的许多疑难问题而创建的。Spring框架采用了依赖注入和面向切面编程等技术,使得代码更加简洁,更加易于测试和维护。在Spring中,模块jar包的依赖关系非常重要,因为它们决定了应用程序的行为和性能。 Spring Framework体系结构及模块jar依赖关…

    Java 2023年5月19日
    00
  • JS 对java返回的json格式的数据处理方法

    当我们在使用 JavaScript 时,需要对从后端返回的 JSON 格式的数据进行处理。下面是处理 JSON 数据的几种方法和示例说明: 1. 使用 XMLHttpRequest 对象发送 Ajax 请求 使用 XMLHttpRequest,可以向后端发送 XMLHttpRequest 请求获取数据。若要获取 JSON 格式数据,可以使用 XMLHttpR…

    Java 2023年5月26日
    00
  • java LeetCode普通字符串模拟题解示例

    Java LeetCode普通字符串模拟题解示例攻略 1. 题目简述 本题是一道字符串模拟题目,要求实现一个String模拟类,具有以下功能: 初始化操作:构造函数接受一个字符串作为参数,将其存储在对象中。 获取字符串操作:实现一个charAt方法,接受一个整数索引index,返回字符串指定位置的字符;实现一个substring方法,接受两个整数索引star…

    Java 2023年5月19日
    00
  • Java ArrayList扩容机制原理深入分析

    Java ArrayList扩容机制原理深入分析 在 Java 中,ArrayList 是一种动态数组,它可以自动扩容以适应数据的增长。了解 ArrayList 扩容机制的原理,有助于我们更好地理解和使用 ArrayList,提高代码效率。 ArrayList 扩容机制 ArrayList 内部使用数组来存储元素,当向 ArrayList 中添加元素时,如果…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部