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

JSP阿木 发布于 12 天前 3 次阅读


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