目录
一、分页
1、思路分析
当我们的数据库数据过多时,一个页面会显示不全,这时我们就需要用到分页
pageIndex:页码
pageSize:每页的数据条数
start,end:每页的起始数据
start=(pageIndex-1)*pageSize+1
end=pageIndex*pageSizecount:数据库总
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:最大页数
当前页数:[<%=pageIndex %>/<%=maxPage %>] //如果当前页不是最后一页,点击下一页就显示下一页,如果当前页是最后一页仍然显示最后一页
<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") %>
     <a href='newspages/update_news.jsp?nid=<%=rs.getInt(1) %>'>修改</a>