今天要讲的是新闻页面的分页模糊查询。由上一个博客可知,新闻页面的分页:是先给页面绑定数据,再利用sql语句进行分页。而分页模糊查询就是再次基础上根据关键字查询相关数据。

   String sql = "select * from (select a.*,rownum mid from news a where ntitle like '%"+str+"%')b where mid>=? and mid<=?";

重点代码展示:

<form action="admin.jsp" align="center"><input type="text" name="str"><input type="submit" value="查询"></form><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 where ntitle like '%"+str+"%' ");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=6;//每页的数据条数,每页6条数据//计算最大页码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 where ntitle like '%"+str+"%')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") %>                                                <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%><%if(str!=null){out.print("&str="+str);}%>">上一页</a> &nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; <a href="admin.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%><%if(str!=null){out.print("&str="+str);}%>">下一页</a> <a href="admin.jsp?pageIndex=<%=maxPage%>">末页</a> </p></ul>

 第二个是主题分页:主题分页除了基本的分页,还需要根据新闻分类名称进行分页查询数据

重点代码展示:

 <div class="content"><ul class="class_date"><li id='class_month'> <%//注册驱动类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 * from subject");ResultSet rs = ps.executeQuery();while(rs.next()){%><a href='index.jsp?tid=<%=rs.getInt(1)%>'><b> <%=rs.getString(2) %> </b></a> <%} %></li></ul><ul class="classlist"><%//接收新闻主题String id = request.getParameter("tid");String countSql = "select count(*) from news";String pageSql = "select * from (select a.*,rownum mid from news a)b where mid>=? and mid<=?";int tid = 1;if(id!=null){//要执行 根据主题查询的分页tid = Integer.valueOf(id);countSql = "select count(*) from news where tid="+tid;pageSql = "select * from (select a.*,rownum mid from news a where tid="+tid+")b where mid>=? and mid<=?";}//查询新闻总条数ps = con.prepareStatement(countSql);rs = ps.executeQuery();int count = 0;if(rs.next()){count = rs.getInt(1);}//获取页码String index = request.getParameter("pageIndex");int pageIndex = 1;//页码if(index!=null){//如果接收到页码,就给页码pageIndex赋值pageIndex = Integer.valueOf(index);}////查询新闻int pageSize = 8;//每页的数据条数,每页6条数据//求出最大的页码int maxPage = count/pageSize;if(count%pageSize!=0){maxPage++;//此时为最大页码}int start = (pageIndex-1)*pageSize+1;int end = pageIndex*pageSize;ps = con.prepareStatement(pageSql);ps.setInt(1, start);ps.setInt(2, end);//执行sql语句rs = ps.executeQuery();while(rs.next()){%><li><a href='newspages/news_add.html'><%=rs.getString("ntitle") %> </a><span> <%=rs.getDate("ndate") %> </span></li><li class='space'></li><%} %><p align="right"> <a href="index.jsp<%if(id!=null){out.print("?tid="+tid);}%>">首页</a> <a href="index.jsp?pageIndex=<%=pageIndex>1?pageIndex-1:1%><%if(id!=null){out.print("&tid="+tid);}%>">上一页</a> &nbsp;当前页数:[<%=pageIndex %>/<%=maxPage %>]&nbsp; <a href="index.jsp?pageIndex=<%=pageIndex<maxPage?pageIndex+1:maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">下一页</a> <a href="index.jsp?pageIndex=<%=maxPage%><%if(id!=null){out.print("&tid="+tid);}%>">末页</a> </p></ul></div>

countSql = "select count(*) from news where tid="+tid;//根据tid查询新闻总条数
pageSql = "select * from (select a.*,rownum mid from news a where tid="+tid+")b where mid>=? and mid<=?";

新闻项目【分页模糊查询】相关推荐

  1. 5.6-5.8工作记录2—分页模糊查询

    5.6-5.8工作记录2-改造ssh 前言 作战过程 5.7项目上篇--分页模糊查询 jsp ssm PK ssh 准备ssm 对比ssh: 工作bug记录 注意 打怪 查询以及分页 知识点 准备第二 ...

  2. 毕设IDEA2019之ssm多表分页模糊查询(PageHelper插件)

    PageHelper插件实现分页查询请戳这. 本篇在分页的基础上实现模糊查询,因为单表有点简单,直接介绍多表,输入关键字查找相关内容,之前几篇有点脱离毕设项目了,这篇开始尽量用项目做例子.没什么好说的 ...

  3. hibernate -- 分页模糊查询中setParameter 和setParameterList

    在分页模糊查询中碰到setParameter 和setParameterList这两个方法 setParameter 以前就只会用setParameter(int arg,String str),我用 ...

  4. php bootstrap 分页 查询,深入了解Bootstrap table表格插件(二)前后端分页模糊查询...

    这篇文章主要为大家分享了Bootstrap table学习笔记,前后端分页模糊查询,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在使用过程中,一边看文档一边做,遇到了一些困难的地方,在此记录一下 ...

  5. Mybatis-Plus——分页+模糊查询

    建表: create table pms_brand (brand_id bigint not null auto_increment comment '品牌id',name char(50) com ...

  6. SpringBoot Mybatis-Plus 分页模糊查询 分页参数和响应封装

    上一篇 SpringBoot集成Mysql.Mybatis.Mybatis-Plus,实现增删改查 一.前言 Mybatis-Plus封装了分页操作,简单配置一下就可以用.我这里还简单做了分页请求参数 ...

  7. sqlserver分页模糊查询sql语句

    sqlserver分页模糊查询sql语句 <select id = "queryUserCount" resultType="int" >selec ...

  8. 新闻发布系统——模糊查询分页与主题分页

    效果图(模糊查询分页) 实现代码(java部分) <ul class="classlist"><%//获取模糊查询的关键字String str = request ...

  9. 【新闻管理系统】模糊查询+分页

    目录 一.管理员界面的模糊查询+主题分页 二.游客界面的主题分页 一.管理员界面的模糊查询+主题分页 分页万能公式: pageIndex//第几页 pageSize//每一页多少条 star=(pag ...

最新文章

  1. YOLOV5的多主干网络backbone实现(Mobilenetv3Small、EagleEye、EfficientNetLite-0、PP-LCNet-1x、SwinTrans-YOLOv5等)
  2. 登录MOSS站点失败
  3. 【Apache】 配置 (http协议的) vhost
  4. wildfly 21的配置文件和资源管理
  5. springmvc 中文文档
  6. macbook所有型号大全_苹果笔记本型号大全
  7. DNF包管理命令在CentOS 8和RHEL 8上的使用
  8. 学会了PowerBI简单的托托拽拽,是时候学习下DAX了
  9. 【Java】Java中的设计模式的介绍以及代码详解
  10. Tensorflow学习笔记2----文本分类模型
  11. 08.electron-(渲染进程间的通信)
  12. 《大数据之路:阿里巴巴大数据实践》-第2篇 数据模型篇 -第10章 维度设计
  13. 对比分析偏差率的五个常见疑问
  14. 电脑磁盘(特别是C盘)又满了,不知道删除什么?试试这款磁盘分析工具
  15. aspose word 19.3的使用和破解 word转图片和pdf
  16. 宣传和灌输诚信国家理念-乌隆他尼皇家大学
  17. 框架的优缺点(TP CI)
  18. matlab中有没有谱聚类,matlab – 谱聚类
  19. mac 安装brew
  20. 如何成为一名合格的LINUX系统管理员

热门文章

  1. H3CTE-OSPF的掌握指标
  2. html5的交互式微课,交互式微课制作系统
  3. 创维Android系统电视去广告,创维电视55E6200酷开系统去开机广告
  4. 考研:研究生考试(七天学完)之《概率与统计》研究生学霸重点知识点总结之考试内容各科占比及常考知识重点梳理(随机事件和概率、一维随机变量及其分布、多维随机变量及其分布、随机变量的数字特征、大数定律和中心
  5. 在moba游戏里面模拟实现绝地求生毒雾圈功能
  6. 左移寄存器vhdl_8位移位寄存器vhdl代码
  7. Raphael属性方法小结一
  8. 高德地图定位传值经纬度坐标为null,null
  9. 【图像去雾】颜色衰减先验图像去雾【含Matlab源码 2036期】
  10. OpenCV Java 实现票据、纸张的四边形边缘检测与提取、摆正