目录
一.主页分页
public List<News> queryNewsAll3(int pageIndex,int pageSize) {
//根据参数pageIndex和pageSize来计算区间查询的规律
int start = (pageIndex-1)*pageSize +1;
int end = pageIndex * pageSize;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<News> list = new ArrayList<News>();
try {
conn = DBHelper.getConn();
String sql = "select b.* from ( select a.*,rownum as rid from tb_news a ) b where b.rid between "+start+" and "+end+"";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
//获取分类编号rs.getInt("ntid");
Theme theme = new ThemeDaoImpl().getThemeByTid(rs.getInt("ntid"));
list.add(new News(rs.getInt("nid"), theme, rs.getString("ntitle"), rs.getString("nauthor"),
rs.getString("nsummary"), rs.getString("ncontent"),
rs.getString("nimage"), rs.getString("ndate"), rs.getInt("ncount")));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(conn, ps, rs);
}
return list;
}
@Override
public int getNewsCount() {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
int count = 0;//保存表的总记录数
try {
conn = DBHelper.getConn();
String sql = "select count(*) from tb_news";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(conn, ps, rs);
}
return count;
}
二.携带模糊查询的分页
@Override
public int getNewsCount(String strName) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
int count = 0;//保存表的总记录数
try {
conn = DBHelper.getConn();
String sql = "select count(*) from tb_news where ntitle like '%"+strName+"%'";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(conn, ps, rs);
}
return count;
}
@Override
public List<News> queryNewsAll5(int pageIndex,int pageSize,String strName) {
//根据参数pageIndex和pageSize来计算区间查询的规律
int start = (pageIndex-1)*pageSize +1;
int end = pageIndex * pageSize;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
List<News> list = new ArrayList<News>();
try {
conn = DBHelper.getConn();
String sql = "select b.* from (\r\n" +
" select a.*,rownum as rid from (\r\n" +
" select * from tb_news where ntitle like '%"+strName+"%'\r\n" +
" )a\r\n" +
")b where b.rid between "+start+" and "+end+"";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()) {
//获取分类编号rs.getInt("ntid");
Theme theme = new ThemeDaoImpl().getThemeByTid(rs.getInt("ntid"));
list.add(new News(rs.getInt("nid"), theme, rs.getString("ntitle"), rs.getString("nauthor"),
rs.getString("nsummary"), rs.getString("ncontent"),
rs.getString("nimage"), rs.getString("ndate"), rs.getInt("ncount")));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
DBHelper.myClose(conn, ps, rs);
}
return list;
}
三.导入项目
<%
//request请求对象设置编码
request.setCharacterEncoding("utf-8");
//实例化DAO
INewsDao ind = new NewsDaoImpl();
//pageIndex 页码 默认第一页
int pageIndex = 1;
//pageSize 每页显示的条数 5条
int pageSize = 5;
//当手动点击了下一页按钮 获取pageIndex 赋值给第75处的那个pageINdex
String pIndex = request.getParameter("pageIndex");
if(null!=pIndex){//说明点击了下一页
pageIndex = Integer.valueOf(pIndex);
}
//手动点击了搜索提交按钮 获取到模糊查询的关键字 否则没有点击的情况下 null 转换
String strName = request.getParameter("strName");
if(strName==null){//没有手动点击搜索
strName="";
}else{//手动点击了搜索
//编码和解码
//strName = new String(strName.getBytes("ISO-8859-1"),"utf-8");
}
System.out.println("strName = "+strName);
//不考虑不糊查询
int count = ind.getNewsCount(strName);//6
int pageMax = 0;
if(count % pageSize == 0){
pageMax = count / pageSize;
}else{
pageMax = count / pageSize +1;
}
System.out.println("count: "+count);
System.out.println("pageMax: "+pageMax);
//调用查看所有的新闻的方法
List<News> listNews = ind.queryNewsAll5(pageIndex,pageSize,strName);//第一个参数页码 第二个参数:条数
for(News news:listNews){
%>
<!-- 填充新闻标题以及时间或者作者 -->
<li>
<!-- 新闻标题 -->
<a href='#'><%=news.getNtitle() %></a>
<span>
作者:<%=news.getNauthor() %>
    
<a href='#'>修改</a>
    
<a href='javascript:void(0)' onclick='clickdel()'>删除</a>
</span> </li>
<%
}
%>
<li class='space'></li>
<p align="right" style = "font-size:20px;font-weight: bold">
当前页数:[<%=pageIndex %>/<%=pageMax %>]
<a href="admin.jsp?pageIndex=1&strName=<%=null!=strName?strName:""%>">首页</a>
<a href="admin.jsp?pageIndex=<%=pageIndex-1<0?1:pageIndex-1%>&strName=<%=null!=strName?strName:""%>">上一页</a>
<a href="admin.jsp?pageIndex=<%=pageIndex+1>pageMax?pageMax:pageIndex+1%>&strName=<%=null!=strName?strName:""%>">下一页</a>
<a href="admin.jsp?pageIndex=<%=pageMax%>&strName=<%=null!=strName?strName:""%>">末页</a>
</p>
</ul>