让我们继续来完善新闻系统的功能吧
阅读量的增加
到阅读代码读取下面进行编写
我们点击进来一次阅读量就加一,也就是数据库里的阅读量数据加一,也需要根据id进行相应的增加哦
//已经被阅读了
ps=con.prepareStatement("update T_NEWS set NEWS_COUNT=NEWS_COUNT+1 where NEWS_ID=?");
ps.setInt(1, Integer.parseInt(newId));
ps.executeLargeUpdate();//不需要判断
但是我们会发现点击进去再退回去刷新才会增加,如下:
第一次点击刷新后
点击第二次阅读界面还是1
我们可以在拿到数据那里在阅读量加一
if(rs.next()){
//可以取值
title=rs.getString(2);
publisher=rs.getString(5);
author=rs.getString(4);
content=rs.getString(6);
count=rs.getInt(8)+1;//当前你阅读了一次
}
模糊查询
点击了表单之后 跳转的是当前这个页面 同时携带一个newName过来(查询的关键字),我们需要拿到newName
String newName=request.getParameter("newName");
然后我们直接写模糊查询
PreparedStatement ps = con.prepareStatement("select * from T_NEWS where NEWS_TITLE like ?");
ps.setString(1, "%"+newName+"%");
但是如果我们从登录界面进去的话是没有数据的,所以我们需要对newName进行判断
if(newName==null){
newName="";//查询所有
}
注意:如果从登录进入到首页,首页的表单又没有设置action,那么点击搜索会跳回登录界面
所以我们就需要设置一个action
<form action="${pageContext.request.contextPath}/news/index.jsp" class="form-inline" style="margin: 0 auto 20px;" method="post">
在搜索的时候如果想隐藏,那我们必须做一个操作——破碎重组,因为使用post会出现乱码
//破碎重组
newName=new String(newName.getBytes(S