JSP 与 MyBatis-Plus 实现 CRUD 操作示例
JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码。MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文将结合 JSP 和 MyBatis-Plus,通过一个简单的示例来实现 CRUD(创建、读取、更新、删除)操作。
环境准备
在开始之前,请确保以下环境已经安装:
1. JDK 1.8 或更高版本
2. Apache Maven 3.5 或更高版本
3. Tomcat 9.0 或更高版本
4. MySQL 5.7 或更高版本
创建项目
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>
<!-- JSP EL 标准库 -->
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.1-b05</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 方法
}
创建 Mapper 接口
在 `src/main/java/com/example/demo/mapper` 目录下创建一个名为 `UserMapper` 的接口,继承 `BaseMapper`:
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` 的接口,以及一个名为 `UserServiceImpl` 的实现类:
java
package com.example.demo.service;
import com.example.demo.entity.User;
import java.util.List;
public interface UserService {
List<User> listUsers();
User getUserById(Long id);
int addUser(User user);
int updateUser(User user);
int deleteUser(Long id);
}
java
package com.example.demo.service.impl;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> listUsers() {
return userMapper.selectList(null);
}
@Override
public User getUserById(Long id) {
return userMapper.selectById(id);
}
@Override
public int addUser(User user) {
return userMapper.insert(user);
}
@Override
public int updateUser(User user) {
return userMapper.updateById(user);
}
@Override
public int deleteUser(Long id) {
return userMapper.deleteById(id);
}
}
创建 Controller
在 `src/main/java/com/example/demo/controller` 目录下创建一个名为 `UserController` 的控制器:
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.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public String listUsers(Model model) {
List<User> users = userService.listUsers();
model.addAttribute("users", users);
return "users";
}
@GetMapping("/user/add")
public String addUser() {
return "addUser";
}
@PostMapping("/user/save")
public String saveUser(User user) {
userService.addUser(user);
return "redirect:/users";
}
@GetMapping("/user/update")
public String updateUser(Model model, @RequestParam Long id) {
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "updateUser";
}
@PostMapping("/user/update/save")
public String updateSaveUser(User user) {
userService.updateUser(user);
return "redirect:/users";
}
@GetMapping("/user/delete")
public String deleteUser(@RequestParam Long id) {
userService.deleteUser(id);
return "redirect:/users";
}
}
创建 JSP 页面
在 `src/main/resources/templates` 目录下创建以下 JSP 页面:
1. `users.jsp`:
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<table border="1">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
<th>操作</th>
</tr>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>
<a href="user/update?id=${user.id}">编辑</a>
<a href="user/delete?id=${user.id}">删除</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
2. `addUser.jsp`:
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加用户</title>
</head>
<body>
<h1>添加用户</h1>
<form action="user/save" method="post">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br>
<label for="age">年龄:</label>
<input type="number" id="age" name="age" required><br>
<input type="submit" value="提交">
</form>
</body>
</html>
3. `updateUser.jsp`:
jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>编辑用户</title>
</head>
<body>
<h1>编辑用户</h1>
<form action="user/update/save" method="post">
<input type="hidden" name="id" value="${user.id}">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" value="${user.name}" required><br>
<label for="age">年龄:</label>
<input type="number" id="age" name="age" value="${user.age}" required><br>
<input type="submit" value="提交">
</form>
</body>
</html>
运行项目
1. 启动 Tomcat 服务器。
2. 在浏览器中访问 `http://localhost:8080/your_project_name/users`,即可看到用户列表页面。
总结
本文通过一个简单的示例,展示了如何使用 JSP 和 MyBatis-Plus 实现 CRUD 操作。在实际项目中,可以根据需求进行扩展和优化。希望本文对您有所帮助。
Comments NOTHING