第一个是数据分页:首先给页面绑定好数据,求出总数据条数,再进行判断能不能整除,不能整除说明还有不够一页的数据,则加一。重点代码如下:
<ul class="classlist">
<%
//获取模糊查询的关键字
/*String str = request.getParameter("str");
if(str==null){
str = "";
}
String sql = "select * from news where ntitle like '%"+str+"%' order by nid desc";
*/
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//求出数据总条数
PreparedStatement ps = con.prepareStatement("select count(*) from news");
ResultSet rs=ps.executeQuery();
int count=0;
if(rs.next()){
count=rs.getInt(1)+1;
}
int pageIndex=1;//页码
//接收页码
String index=request.getParameter("pageIndex");
if(index!=null){//如果接收到页面,就给页面pageIndex赋值
pageIndex=Integer.valueOf(index);
}
int pageSize=5;//每页的数据条数,每页5条数据
//计算最大页码
int maxPage=count/pageSize;
//判断能不能整除,不能整除说明还有不够一页的数据
if(count%pageSize!=0){
maxPage++;
}
int start=(pageIndex-1)*pageSize+1;
int end=pageIndex*pageSize;
String sql="select * from(select a.*,rownum mid from news a)b where mid>=? and mid<=?";
ps=con.prepareStatement(sql);
ps.setInt(1, start);
ps.setInt(2, end);
while(rs.next()){
%>
<li>
<a href="newspages/read_news.jsp?nid=<%=rs.getInt(1)%>">
<%=rs.getString("ntitle") %>
</a>
<span> 作者:<%=rs.getString("nzz") %>
     <a href='newspages/update_news.jsp?nid=<%=rs.getInt(1)%>'>修改</a>
    <a href='dodelnews.jsp?nid=<%=rs.getInt(1)%>' onclick='return clickdel()'>删除</a> </span> </li>
<li class='space'></li>
<%} %>
<p align="right">
<a href="admin.jsp">首页</a>
<a href="admin.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%>">上一页</a>
当前页数:[<%=pageIndex %>/<%=maxPage %>]
<a href="admin.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%>">下一页</a>
<a href="admin.jsp?pageIndex=<%=maxPage%>">末页</a>
</p>
</ul>
--伪列:rownum rowid
--查询1--5条数据-第一页select * from(select a.*,rownum mid from news a)b where mid>=1 and mid<=5;
第二个添加评论:首先从read_news.jsp页面获取评论信息,然后在addpl.jsp中接收评论信息。
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置编码格式
request.setCharacterEncoding("utf-8");
//接收评论人的编号(用户编号)
Object id = session.getAttribute("uuid");
int uuid = (Integer)id;//强转
//out.print("用户编号"+id);
//评论人的IP
String pid = request.getParameter("cip");
//接收新闻编号(给哪一篇新闻评论)
int nid = Integer.valueOf(request.getParameter("nid"));
//评论内容
String pnr = request.getParameter("ccontent");
//评论主键编号:连接数据库查询到最大编号 然后加1
int nextPid = 1;
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//创建PreparedStatement对象
PreparedStatement ps = con.prepareStatement("select max(pid) from ptext");
//执行sql语句
ResultSet rs = ps.executeQuery();
if(rs.next()){
nextPid = rs.getInt(1)+1;
}
//连接数据库,添加评论
ps = con.prepareStatement("insert into ptext values(?,?,?,?,sysdate,?)");
//给占位符赋值
ps.setInt(1, nextPid);
ps.setInt(2, uuid);
ps.setInt(3, nid);
ps.setString(4, pnr);
ps.setString(5, pid);
int i = ps.executeUpdate();
if(i>0){
out.print("<script>alert('评论成功');location.href='read_news.jsp?nid="+nid+"'</script>");
}else{
out.print("<script>alert('评论失败');location.href='read_news.jsp?nid="+nid+"'</script>");
}
%>
第三个删除评论:还存在一些小bug
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置编码格式
request.setCharacterEncoding("utf-8");
//接收要评论编号
int pid=Integer.valueOf(request.getParameter("pid"));
//接收要删除的新闻编号
String nid = request.getParameter("nid");
//注册驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//连接数据库
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
//创建PreparedStatement对象
PreparedStatement ps = con.prepareStatement("delete ptext where pid="+pid);
//执行sql语句
int i = ps.executeUpdate();
if(i>0){
out.print("<script>alert('删除成功');location.href='read_news.jsp?nid="+nid+"'</script>");
}else{
out.print("<script>alert('删除失败');location.href='read_news.jsp?nid="+nid+"'</script>");
}
if(ps!=null){
ps.close();
}
if(con!=null){
con.close();
}
%>