jsp新闻项目(分页&评论的维护&浏览量)

本文详细介绍了使用Java进行新闻项目的分页实现,包括分页思路与代码展示;评论维护,涉及添加、显示和删除评论的数据库操作;以及简单的浏览量统计方法。通过实例讲解了如何在Oracle数据库中操作评论表,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

目录

一、分页

        1、思路分析

        2、代码

二、评论的维护

        (Oracle)数据库评论表

        1、添加评论

        2、显示评论

        3、删除评论

三、浏览量


一、分页

        1、思路分析

当我们的数据库数据过多时,一个页面会显示不全,这时我们就需要用到分页

pageIndex:页码 

pageSize:每页的数据条数 

start,end:每页的起始数据
        start=(pageIndex-1)*pageSize+1
        end=pageIndex*pageSize

count:数据库总

maxPage:最大页码
        maxPage = count/pageSize

在分页时,我们用伪表查询(起别名)来代替模糊查询:

String sql = "select * from(select a.*,rownum mid from news2 a)b where mid>=? and mid<=?";//第一个问号=start,第二个问号=end

 因为主页面数据需要用到分页,所以在之前的主页面绑定数据的地方做了些许改变

 注意:

下面我们用到了三元运算符

        ​​​表达式1?表达式2:表达式3

(即:如果表达式1成立,结果就是表达式2;否则结果就是表达式3)

例(eg):

        a1>a2?a1=1:a1=0 (如果a1大于a2,那么a1等于1,否则a1等于0)

<a href="admin.jsp">首页</a> 

//如果当前页不是第一页时,点击上一页就显示上一页,如果当前页是第一页仍然显示第一页
<a href="admin.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%>">上一页</a>

//pageIndex:当前页数(随页数变化)       maxPage:最大页数
       
 &nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; 

 //如果当前页不是最后一页,点击下一页就显示下一页,如果当前页是最后一页仍然显示最后一页
<a href="admin.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%>">下一页</a> 

//当前页数(pageIndex)=最大页数(maxPage) → 末页
<a href="admin.jsp?pageIndex=<%=maxPage%>">末页</a> 

        2、代码

    <ul class="classlist">
    	<%
	    /* 	//获取模糊查询的关键字
	    	String str=request.getParameter("str");
    		if(str==null){//判断str是否为空
    			str="";//str为空,就让str="",以便下面SQL语句的执行——查询所有
    		}
    		String sql="select * from news2 where ntitle like '%"+str+"%' order by nid desc";//默认SQL语句
    		 */
    		 
    	//连接数据库,查询新闻
    		//注册驱动器
			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 news2");
    		ResultSet rs = ps.executeQuery();
    		int count = 0;
    		if(rs.next()){
    			count = rs.getInt(1);
    		}
    		
    		
    		int pageIndex = 1;//页码
    		//接收页码
    		String index = request.getParameter("pageIndex");
    		if(index!=null){//如果接收到页面,就给页面pageIndex赋值
    			pageIndex = Integer.valueOf(index);
    		}
    		int pageSize = 15;//每页的数据条数,每页5条数据
    		
    		//计算最大页码
    		int maxPage = count/pageSize;   
    		//判断能不能整除,不能整除说明还有不够一页的数据
    		if(count%pageSize!=0){
    			maxPage++;
    		}
    		
    		int start = (pageIndex-1)*pageSize+1;
    		int end = pageSize*pageIndex;
    		String sql = "select * from(select a.*,rownum mid from news2 a)b where mid>=? and mid<=?";
			
			//创建对象
			ps=con.prepareStatement(sql);
			ps.setInt(1,start);
			ps.setInt(2, end);
			//执行sql语句
			rs=ps.executeQuery();
			//处理结果
			while(rs.next()){
    	%>
		<li>
			<a href="newspages/read_news.jsp?nid=<%=rs.getInt(1)%>">
				<%=rs.getString("ntitle") %>
	    	 </a>
		<span> 作者:<%=rs.getString("nzz") %>                                            
        &#160;&#160;&#160;&#160; <a href='newspages/update_news.jsp?nid=<%=rs.getInt(1) %>'>修改</a> &#160;&#160;&#160;
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值