一、Dish类
/*
* Copyright (c) 2020, 2023, webrx.cn All rights reserved.
*
*/
package com.itheima.impl;
import com.mysql.cj.jdbc.Blob;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import java.util.stream.Stream;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dish {
private Integer id;
private String name;
private Integer category_id;
private double price;
private Blob image;
private String description;
private Integer status;
private LocalDateTime create_time;
private LocalDateTime update_time;
}
二、a.jsp
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="com.itheima.impl.Dish" %>
<%@ page import="java.io.PrintWriter" %><%--
Created by IntelliJ IDEA.
User: 黄远超
Date: 2023/8/23
Time: 17:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
<!-- 引入 layui.css -->
<link href="//unpkg.com/layui@2.8.15/dist/css/layui.css" rel="stylesheet">
<!-- 引入 layui.js -->
<script src="//unpkg.com/layui@2.8.15/dist/layui.js"></script>
<style>
.table {
width: 1200px;
text-align: -webkit-center;
}
ul {
position: absolute;
left: 380px;
top: 400px;
}
</style>
</head>
<body>
<div id="a">
<table class="table" style="margin: 0 auto">
<tr>
<th>商品id</th>
<th>商品名称</th>
<th>商品价格</th>
<th>商品描述</th>
<th>购买日期</th>
<th>最新修改日期</th>
<th>操作</th>
</tr>
<%
int pagesize = 5;
int pagenow = 1;
// 接受当前页并转为int 类型
String p2 = request.getParameter("p");
// 因为初始化进入进入主页面时 p是不传值的 所以因该判断如果不传值的时候 没法用integer转换 会报错
if (p2 != null) {
pagenow = Integer.parseInt(p2);
if (pagenow <= 0) {
pagenow = 1;
}
}
Class.forName("com.mysql.cj.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "");
String id1 = request.getParameter("id");
if (id1!=null){
int id = Integer.parseInt(id1);
PreparedStatement ps2 = c.prepareStatement("delete from db02.dish where id=?");
ps2.setInt(1,id);
ps2.execute();
}
PreparedStatement ps1 = c.prepareStatement("select count(*) from db02.dish");
ResultSet rs1 = ps1.executeQuery();
rs1.next();
// 总计记录数
int countpage = rs1.getInt(1);
// 计算总共有多少页 除不尽加一
int pages = countpage % pagesize == 0 ? countpage / pagesize : countpage / pagesize + 1;
if (pagenow <= 0) {
pagenow = 1;
} else if (pagenow >= pages) {
pagenow = pages;
}
PreparedStatement ps = c.prepareStatement("select *from db02.dish order by id asc limit ?,?");
ps.setInt(1, pagenow * pagesize - pagesize);
ps.setInt(2, pagesize);
ResultSet rs = ps.executeQuery();
Dish dish = new Dish();
while (rs.next()) {
dish.setId(rs.getInt("id"));
dish.setName(rs.getString("name"));
dish.setPrice(rs.getDouble("price"));
dish.setDescription(rs.getString("description"));
dish.setCreate_time(rs.getTimestamp("create_time").toLocalDateTime());
dish.setUpdate_time(rs.getTimestamp("update_time").toLocalDateTime());
%>
<tr>
<td><%=dish.getId()%>
</td>
<td><%=dish.getName()%>
</td>
<td><%=dish.getPrice()%>
</td>
<td><%=dish.getDescription()%>
</td>
<td><%=dish.getCreate_time()%>
</td>
<td><%=dish.getUpdate_time()%>
</td>
<td>
<a href="?id=<%=dish.getId()%>&p=<%=pagenow%>" onclick="return confirm('是不是要删除?')" class="btn btn-sm btn-danger">删除</a>
<a href="" onclick="return confirm('是否要修改')" class="btn btn-sm btn-primary">修改</a>
</td>
</tr>
<% }%>
</table>
<ul class="pagination">
<li class="page-item"><a class="page-link" href="a.jsp?p=1">首页</a></li>
<li class="page-item"><a class="page-link" href="a.jsp?p=<%=pagenow-1%>">上一页</a></li>
<li class="page-item"><span class="page-link">第<%=pagenow%>页</span></li>
<li class="page-item "><a class="page-link" href="a.jsp?p=<%=pagenow+1%>">下一页</a></li>
<li class="page-item "><a class="page-link" href="a.jsp?p=<%=pages%>">尾页</a></li>
</ul>
</div>
</body>
</html>
三、运行效果