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 操作。在实际项目中,您可以根据需求对代码进行修改和扩展。希望本文对您有所帮助!
Comments NOTHING