JSP实现分页和删除

一、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>

三、运行效果

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值