Servlet+JSP+MyBatis学生宿舍管理系统:实现学生信息查询功能
1. 创建数据库和表结构: 首先创建一个名为dorm的数据库,然后在该数据库中创建一个名为student的表,表结构如下:
CREATE TABLE student (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
gender VARCHAR(10),
age INT,
dormitory VARCHAR(50),
phone VARCHAR(20)
);
2. 初始化模拟数据: 可以使用SQL语句往student表中插入一些模拟数据,例如:
INSERT INTO student (name, gender, age, dormitory, phone) VALUES
('张三', '男', 20, 'A001', '1234567890'),
('李四', '男', 19, 'A002', '2345678901'),
('王五', '女', 21, 'A003', '3456789012'),
('赵六', '男', 20, 'A001', '4567890123'),
('钱七', '女', 19, 'A002', '5678901234'),
('孙八', '男', 21, 'A003', '6789012345');
3. 搭建项目环境: 使用Servlet和JSP进行前端展示,使用MyBatis进行数据库操作。可以使用Maven构建项目,添加以下依赖:
<dependencies>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- JSP -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
4. 实现学生信息的查询: 首先创建一个Student实体类,包含与数据库表对应的属性和相应的getter和setter方法。
public class Student {
private int id;
private String name;
private String gender;
private int age;
private String dormitory;
private String phone;
// 省略getter和setter方法
}
然后创建一个StudentMapper接口,定义查询学生信息的方法。
public interface StudentMapper {
List<Student> getStudentsByName(String name);
}
接着创建一个StudentMapper.xml文件,配置查询学生信息的SQL语句。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.StudentMapper">
<resultMap id="studentResultMap" type="com.example.entity.Student">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="gender" column="gender" />
<result property="age" column="age" />
<result property="dormitory" column="dormitory" />
<result property="phone" column="phone" />
</resultMap>
<select id="getStudentsByName" resultMap="studentResultMap">
SELECT * FROM student
WHERE name LIKE CONCAT('%', #{name}, '%')
</select>
</mapper>
接下来,在Servlet中调用StudentMapper接口的方法,并将查询结果存储在request中,然后转发到JSP页面进行展示。
@WebServlet("/search")
public class SearchServlet extends HttpServlet {
private StudentMapper studentMapper;
@Override
public void init() throws ServletException {
super.init();
// 初始化StudentMapper
SqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
try (SqlSession session = sqlSessionFactory.openSession()) {
studentMapper = session.getMapper(StudentMapper.class);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
List<Student> students = studentMapper.getStudentsByName(name);
request.setAttribute("students", students);
request.getRequestDispatcher("/result.jsp").forward(request, response);
}
}
最后,创建一个result.jsp页面,用于展示查询结果。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>学生信息查询结果</title>
</head>
<body>
<h1>学生信息查询结果</h1>
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>宿舍</th>
<th>电话</th>
</tr>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.gender}</td>
<td>${student.age}</td>
<td>${student.dormitory}</td>
<td>${student.phone}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
以上就是使用Servlet、JSP和MyBatis实现学生宿舍管理功能的思路要求。通过搭建项目环境和数据库,然后实现学生信息的查询功能。在查询过程中,可以通过姓名的模糊查询和分页效果来进行筛选和展示。
原文地址: https://www.cveoy.top/t/topic/p6yO 著作权归作者所有。请勿转载和采集!