jsp 语言 JSP 与 MyBatis Plus 实现 CRUD 操作示例

JSP阿木 发布于 23 天前 6 次阅读


JSP 与 MyBatis-Plus 实现 CRUD 操作示例

JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码。MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文将结合 JSP 和 MyBatis-Plus,通过一个简单的示例来实现 CRUD(创建、读取、更新、删除)操作。

环境准备

在开始之前,请确保以下环境已经配置好:

1. JDK 1.8 或更高版本

2. Tomcat 9.0 或更高版本

3. MySQL 5.7 或更高版本

4. Maven 3.6.3 或更高版本

创建项目

1. 使用 Maven 创建一个 Web 项目。

2. 添加以下依赖到 `pom.xml` 文件中:

xml

<dependencies>


<!-- JSP 标准库 -->


<dependency>


<groupId>javax.servlet.jsp</groupId>


<artifactId>javax.servlet.jsp-api</artifactId>


<version>2.3.3</version>


<scope>provided</scope>


</dependency>


<!-- JSTL 标准库 -->


<dependency>


<groupId>javax.servlet.jsp.jstl</groupId>


<artifactId>javax.servlet.jsp.jstl-api</artifactId>


<version>1.2</version>


<scope>provided</scope>


</dependency>


<!-- MySQL 驱动 -->


<dependency>


<groupId>mysql</groupId>


<artifactId>mysql-connector-java</artifactId>


<version>8.0.22</version>


</dependency>


<!-- MyBatis-Plus -->


<dependency>


<groupId>com.baomidou</groupId>


<artifactId>mybatis-plus-boot-starter</artifactId>


<version>3.4.3.4</version>


</dependency>


<!-- Spring Boot -->


<dependency>


<groupId>org.springframework.boot</groupId>


<artifactId>spring-boot-starter-web</artifactId>


</dependency>


</dependencies>


3. 在 `src/main/resources` 目录下创建 `application.properties` 文件,配置数据库连接信息:

properties

spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC


spring.datasource.username=root


spring.datasource.password=root


spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


创建实体类

在 `src/main/java/com/example/demo` 目录下创建一个名为 `User` 的实体类,用于表示用户信息:

java

package com.example.demo;

import com.baomidou.mybatisplus.annotation.IdType;


import com.baomidou.mybatisplus.annotation.TableId;


import com.baomidou.mybatisplus.annotation.TableName;

@TableName("user")


public class User {


@TableId(type = IdType.AUTO)


private Long id;


private String name;


private Integer age;

// 省略 getter 和 setter 方法


}


创建 MyBatis-Plus 配置类

在 `src/main/java/com/example/demo` 目录下创建一个名为 `MyBatisPlusConfig` 的配置类,用于配置 MyBatis-Plus:

java

package com.example.demo;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;


import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;


import org.mybatis.spring.annotation.MapperScan;


import org.springframework.context.annotation.Bean;


import org.springframework.context.annotation.Configuration;

@Configuration


@MapperScan("com.example.demo.mapper")


public class MyBatisPlusConfig {


@Bean


public MybatisPlusInterceptor mybatisPlusInterceptor() {


MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();


interceptor.addInnerInterceptor(new PaginationInnerInterceptor());


return interceptor;


}


}


创建 Mapper 接口

在 `src/main/java/com/example/demo/mapper` 目录下创建一个名为 `UserMapper` 的 Mapper 接口,用于操作用户信息:

java

package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;


import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper<User> {


}


创建 Service 层

在 `src/main/java/com/example/demo/service` 目录下创建一个名为 `UserService` 的 Service 层,用于处理业务逻辑:

java

package com.example.demo.service;

import com.example.demo.entity.User;


import com.example.demo.mapper.UserMapper;


import org.springframework.beans.factory.annotation.Autowired;


import org.springframework.stereotype.Service;

import java.util.List;

@Service


public class UserService {


@Autowired


private UserMapper userMapper;

public List<User> findAll() {


return userMapper.selectList(null);


}

public User findById(Long id) {


return userMapper.selectById(id);


}

public int save(User user) {


return userMapper.insert(user);


}

public int update(User user) {


return userMapper.updateById(user);


}

public int delete(Long id) {


return userMapper.deleteById(id);


}


}


创建 Controller 层

在 `src/main/java/com/example/demo/controller` 目录下创建一个名为 `UserController` 的 Controller 层,用于处理 HTTP 请求:

java

package com.example.demo.controller;

import com.example.demo.entity.User;


import com.example.demo.service.UserService;


import org.springframework.beans.factory.annotation.Autowired;


import org.springframework.web.bind.annotation.;

import java.util.List;

@RestController


@RequestMapping("/user")


public class UserController {


@Autowired


private UserService userService;

@GetMapping


public List<User> findAll() {


return userService.findAll();


}

@GetMapping("/{id}")


public User findById(@PathVariable Long id) {


return userService.findById(id);


}

@PostMapping


public int save(@RequestBody User user) {


return userService.save(user);


}

@PutMapping


public int update(@RequestBody User user) {


return userService.update(user);


}

@DeleteMapping("/{id}")


public int delete(@PathVariable Long id) {


return userService.delete(id);


}


}


创建 JSP 页面

在 `src/main/webapp/WEB-INF/views` 目录下创建以下 JSP 页面:

1. `index.jsp`:用于展示用户列表。

2. `add.jsp`:用于添加用户信息。

3. `edit.jsp`:用于编辑用户信息。

以下是 `index.jsp` 的示例代码:

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<html>


<head>


<title>用户列表</title>


</head>


<body>


<h1>用户列表</h1>


<a href="add.jsp">添加用户</a>


<table border="1">


<tr>


<th>编号</th>


<th>姓名</th>


<th>年龄</th>


<th>操作</th>


</tr>


<%


List<User> users = (List<User>) request.getAttribute("users");


for (User user : users) {


%>


<tr>


<td><%= user.getId() %></td>


<td><%= user.getName() %></td>


<td><%= user.getAge() %></td>


<td>


<a href="edit.jsp?id=<%= user.getId() %>">编辑</a>


<a href="delete.jsp?id=<%= user.getId() %>">删除</a>


</td>


</tr>


<%


}


%>


</table>


</body>


</html>


总结

本文通过一个简单的示例,展示了如何使用 JSP 和 MyBatis-Plus 实现 CRUD 操作。在实际项目中,您可以根据需求对代码进行修改和扩展。希望本文对您有所帮助!