首页 > 其他分享 >JDBC实现留言板

JDBC实现留言板

时间:2024-07-12 15:30:26浏览次数:16  
标签:JDBC pageSize rs 实现 stmt close null 留言板 con

<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*,message.Message"%>
<HTML>

<head>
<title>留言板</title>
<style type="text/css">
input[type="submit"] {
width: 20%;

color: white;
border: none;
cursor: pointer;
font-size: 24px;
background-color: #4cae4c;
}
</style>
</head>
<BODY>
<div style=" background-color:#66ccff;position: absolute;top:10px;right:100px;">
<a style="text-decoration: none;"href="AAAShouYe.jsp">返回首页</a>
</div>
<%
Message M = new Message();
int pageSize = 10;
int currentPage = Integer.parseInt(request.getParameter("page") != null ? request.getParameter("page") : "1");
int totalRecords = 0; // 用于存储总记录数
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String driverName = "com.mysql.jdbc.Driver";
String uri = "jdbc:mysql://localhost:3306/mis?serverTimezone=UTC";
String user = "root";
String password = "123456";
try {
Class.forName(driverName);
con = DriverManager.getConnection(uri, user, password);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
int offset = (currentPage - 1) * pageSize;
rs = stmt.executeQuery("SELECT * FROM message ORDER BY datetime DESC LIMIT " + pageSize + " OFFSET " + offset);
totalRecords=M.totalRecords();
int totalPages = (totalRecords + pageSize - 1) / pageSize;
%>
<h1 style="text-align:center;">留言板</h1>
<br>
留言板上共有
<FONT SIZE=4 COLOR=red><%= totalRecords %></FONT>
条留言
<br>
<table width="90%" border="0" cellpadding="2" cellspacing="1" style="word-break: break-all;"align=center>
<TR bgcolor=CCCCCC ALIGN=CENTER>
<TD width="5%">
<B>记录条数</B>
</TD>
<TD width="20%">
<B>发布时间</B>
</TD>
<TD width="10%">
<B>姓名</B>
</TD>
<TD width="55%">
<B>留言内容</B>
</TD>
</TR>
<%
rs.beforeFirst();
while (rs.next()) {
%>
<TR ALIGN=CENTER>
<TD width="5%"><br>
<B><%=rs.getRow()%></B>
</TD>
<TD width="20%"><br>
<B><%=rs.getTimestamp("datetime")%></B>
</TD>
<TD width="10%"><br>
<B><%=rs.getString("name")%></B>
</TD>
<TD width="55%"><br>
<B><%=rs.getString("message")%></B>
</TD>
</TR>
<%
}
rs.close();
stmt.close();
con.close();
%></table>
<div align="center">
<a href="?page=1">第一页</a>
<% for (int p = 1; p <= totalPages; p++) { %>
<a href="?page=<%= p %>"><%= p %></a>
<% if (p < totalPages) out.print("&nbsp;"); %>
<% } %>
<a href="?page=<%= totalPages %>">尾页</a>
</div>

<%
} catch (ClassNotFoundException e) {
out.print("连接失败!");
e.printStackTrace();
} catch (SQLException e) {
out.print("数据库查询错误!");
e.printStackTrace();
} finally {
// 关闭资源
try { if (rs != null) rs.close(); } catch (SQLException e) {}
try { if (stmt != null) stmt.close(); } catch (SQLException e) {}
try { if (con != null) con.close(); } catch (SQLException e) {}
}
%> <br><br>
<form action="writeMessage.jsp" method="post" accept-charset="UTF-8">
<input type="submit" value="写留言">
</form>
</BODY>
</HTML>

标签:JDBC,pageSize,rs,实现,stmt,close,null,留言板,con
From: https://www.cnblogs.com/baizedegewuzhi/p/18298499

相关文章

  • ARC算法实现
    1.概述AdaptiveReplacementCache(ARC)是一种缓存替换算法,用于提高缓存的命中率。ARC动态调整缓存策略,以适应实际的访问模式,从而在不确定的工作负载下表现良好。它通过同时维护两个缓存列表来追踪最近使用和频繁使用的数据块,并根据访问模式在这两个列表之间动态分配缓存空间。2......
  • JDK 8 之后可以使用更加简单的方法 Stream 流来实现排序功能
    //创建并初始化ListList<Person>list=newArrayList<Person>(){{add(newPerson(1,30,"张三"));add(newPerson(2,20,"李四"));add(newPerson(3,40,"王五"));}};......
  • 双指针法,高效移除数组特定值(思路+实现)
    题目①双指针解决本题的思路1.明确双指针slow、fast的作用:1_1.slow:数组该更新的位置,“新数组”(最终数组)的个数。 注意:本题新数组可以不需要辅助空间,而下一篇文章(有序数组的平方,就需要辅助数组)1_2.fast:遍历原数组(初始数组)2.双指针工作原理:(T是我们要删除的元素......
  • 3.6--softmax回归的从零开始实现
    softmax回归从零实现前言一、导入相关的库二、数据和模型参数1.读取数据2.初始化模型参数三、实现softmax运算四、定义模型五、定义损失函数六、计算分类准确率七、训练模型八、预测总结前言本节介绍softmax和交叉熵损失函数的从零开始实现。一、导入相关的库imp......
  • html+js实现选中左边的数据到右边
    效果后台要开发个功能,给游戏内的用户赠送道具,先把道具列表展示,然后选择要增送的道具,可以加上道具图片之类的,美化index.html页面没有美化,只是实现了效果。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device......
  • 记一次原生AB分区OTA升级实现
    记一次原生AB分区OTA升级实现系统需要实现软件ota功能具体代码实现UpdateEnginemUpdateEngine=newUpdateEngine();UpdateParser.ParsedUpdatemParsedUpdate;try{mParsedUpdate=UpdateParser.parse(newFile(Environment.getDataDirectory(),"ota_package/upd......
  • 基于SpringBoot+Vue+数据可视化的药品商场购物系统设计和实现(源码+LW+部署讲解)
    博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P......
  • 毕业设计之python语音数据及标注核对审核系统设计与实现(python完整源码+说明文档+演示
    1项目介绍基于python的语音标注及审核系统的目的就是在于建立属于自己的一套识别系统,在日常的工作中,语音识别是一件非常重要的事情,比如说企业或事业单位当中。自动整理语音数据,保存到数据库当中,实现数据对应一致性,这样可以很大程度地进行数据的校验。2、项目技术项目后......
  • 利用Python实现分析给定文本字符串中的字符统计信息
    设计一个名为TextAnalyzer的Python类,该类用于分析给定文本字符串中的字符统计信息。类应具有以下功能:初始化:类初始化时接受一个字符串参数text,并将其存储为类的属性。字符计数:实现一个方法count_characters(),返回一个字典,其中键为文本中出现的不同字符(包括空格和标点符......
  • Day9(栈与队列) | **232.用栈实现队列** **225. 用队列实现栈** **20. 有效的括号**
    232.用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素booleanempty()如果队列为......