目录结构
Student类
package com.wy.pojo;
public class Student {
private Integer id;
private String name;
private Integer sex;
private Integer gradeId;
private Integer score;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public Integer getGradeId() {
return gradeId;
}
public void setGradeId(Integer gradeId) {
this.gradeId = gradeId;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", sex=" + sex +
", gradeId=" + gradeId +
", score=" + score +
'}';
}
}
封装JdbcUtil
package com.wy.util;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class JdbcUtil {
static String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
static final String USERNAME = "root";
static final String PASSWORD = "123456";
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection con = null;
try {
con = DriverManager.getConnection(url,USERNAME,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static void close(Connection con, PreparedStatement pstmt) {
try {
if(pstmt != null)
pstmt.close();
if(con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Connection con, PreparedStatement pstmt, ResultSet rs) {
try {
if(rs != null)
rs.close();
close(con, pstmt);
} catch (SQLException e) {
e.printStackTrace();
}
}
public static <T> List<T> executeQuery(String sql,Class<T> clz,Object... params) {
List<T> list = new ArrayList<>();
Connection con = getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = con.prepareStatement(sql);
if(params != null) {
for(int i = 0; i < params.length; i++) {
pstmt.setObject( i + 1, params[i]);
}
}
rs = pstmt.executeQuery();
while (rs.next()) {
T t = clz.newInstance();
Field[] fields = clz.getDeclaredFields();
for(Field field : fields) {
field.setAccessible(true);
field.set(t,rs.getObject(field.getName()));
}
list.add(t);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} finally {
close(con,pstmt,rs);
}
return list;
}
}
StudentListServlet
将查询到的数据发送给jsp显示在页面上
package com.wy.web;
import com.wy.pojo.Student;
import com.wy.util.JdbcUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@WebServlet("/student/list")
public class StudentListServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Student> list = JdbcUtil.executeQuery("select id,name,sex,grade_id as gradeId,score from student",Student.class);
request.setAttribute("students",list);
request.getRequestDispatcher("/WEB-INF/pages/studentList.jsp").forward(request,response);
}
}
studentList.jsp
页面上显示的内容
<%--
Created by IntelliJ IDEA.
User: Neuedu
Date: 2021/2/24
Time: 15:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
<style>
#tb{
border-collapse: collapse;
}
#tb th,#tb td{
border:1px solid #c8d1d3;
padding: 5px 10px;
}
</style>
</head>
<body>
<table id="tb">
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>班级编号</th>
<th>成绩</th>
</tr>
</thead>
<tbody>
<c:forEach items="${students}" var="student">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.sex}</td>
<td>${student.gradeId}</td>
<td>${student.score}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>