分页查询
*通过点击首页,上一页,下一页,末页,进行页面跳转
连接数据库,通过count函数获取新闻表的总条数,然后在进行分页查询
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=Integer.valueOf(index);
}
int pageSize=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);
rs=ps.executeQuery();
在<a>下设置跳转路径
添加评论
点击查看的新闻标题,然后跳转到新闻阅读页面
绑定数据库,进行评论
相关代码
<获取编号,绑定评论表>
<%
request.setCharacterEncoding("utf-8");
//接收评论人的编号(用户编号)
Object id = session.getAttribute("uuid");
int uuid = (Integer)id;//强转
//评论人的IP
String pip = request.getParameter("cip");
//接收新闻编号(给哪一篇新闻评论)
int nid = Integer.valueOf(request.getParameter("nid"));
//评论内容
String pnr = request.getParameter("ccontent");
//评论主键编号:连接数据库查询到最大编号 然后加1
int nextPid = 1;
//连接数据库
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Connection con = DriverManager.getConnection(url, "scott", "tiger");
PreparedStatement ps = con.prepareStatement("select max(pid) from ptext");
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, pip);
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>");
}
%>