汗。。这个问题今天貌似要回答第三遍了。。数据库分页select top 10 from testTable where testField = 'test' and id not in(select top 0 id from testTable where testField = 'test' order by id desc ) order by id desc 这样就可以实现分页了。每次只要在后面的top 0中修改0的值就行了如果每页为10条数据第一页为0 。第二页为10,第三页则修改top 0处为30这样就实现了数据库分页。至于你说的list分页这个是可以做的。但是我推荐你使用数据库分页。数据少对你没有什么影响,但是数据多就惨了。本人最近就碰到个项目数据库中一张表存了近2000W条数据。如果10个人同时查那可就是1亿条数据了。你服务器立马崩溃而且用数据库查的效率也高。如果是在有索引的情况下。并且没有用字符类的比较的话。5秒内就能查出你所需要的数据了
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="javasql"%>
<html>
<head>
<title>分页显示</title>
</head>
<body>
<center>
<h1>人员列表</h1>
<hr>
<br>
<%--
程序可以进行关键字查询的分页
--%>
<%
// 进行乱码处理
requestsetCharacterEncoding("GB2312") ;
%>
<%!
final String jspUrl = "list_person_false_06jsp" ;
%>
<%
// 定义如下分页变量
// 1、定义没页要显示的记录数
int lineSize = 10 ;
// 2、定义一个当前是第几页
int currentPage = 1 ;
// 计算出总页数
int pageSize = 0 ;
// 总记录数 / 每页显示的记录数
int allRecorders = 30 ;
// 加入查询关键字变量
String keyWord = null ;
%>
<%
// 接收查询关键字
keyWord = requestgetParameter("kw") ;
// 接收传过来的当前页
try
{
currentPage = IntegerparseInt(requestgetParameter("cp")) ;
}
catch(Exception e)
{}
%>
<%
final String DBDRIVER = "orggjtmmmysqlDriver" ;
final String DBURL = "jdbc:mysql://localhost/mldn" ;
final String DBUSER = "root" ;
final String DBPASSWORD = "mysqladmin" ;
Connection conn = null ;
%>
<%
try
{
ClassforName(DBDRIVER) ;
conn = DriverManagergetConnection(DBURL,DBUSER,DBPASSWORD) ;
PreparedStatement pstmt = null ;
String sql = null ;
if(keyWord==null)
{
// 如果为空则没有查询,表示查询出全部
sql = "SELECT COUNT(id) from person" ;
}
else
{
sql = "SELECT COUNT(id) from person WHERE uid LIKE OR name LIKE " ;
}
pstmt = connprepareStatement(sql) ;
// 如果有查询关键字,则进行设置
if(keyWord!=null)
{
pstmtsetString(1,"%"+keyWord+"%") ;
pstmtsetString(2,"%"+keyWord+"%") ;
}
ResultSet rs = pstmtexecuteQuery() ;
if(rsnext())
{
allRecorders = rsgetInt(1) ;
}
rsclose() ;
pstmtclose() ;
// 计算总页数
pageSize = (allRecorders+lineSize-1)/lineSize ;
if(keyWord==null)
{
sql = "SELECT id,uid,name,password FROM person" ;
}
else
{
sql = "SELECT id,uid,name,password FROM person WHERE uid LIKE OR name LIKE " ;
}
pstmt = connprepareStatement(sql) ;
if(keyWord!=null)
{
pstmtsetString(1,"%"+keyWord+"%") ;
pstmtsetString(2,"%"+keyWord+"%") ;
}
rs = pstmtexecuteQuery() ;
%>
<script language="javaScript">
function openPage(curpage)
{
documentspagecpvalue = curpage ;
// alert(cupage) ;
documentspagesubmit() ;
}
function selOpenPage()
{
documentspagecpvalue = documentspageselpagevalue ;
documentspagesubmit() ;
}
</script>
<form name="spage" action="<%=jspUrl%>">
输入查询关键字:<input type="text" name="kw" value="<%=keyWord==null"":keyWord%>">
<input type="submit" value="查询">
<%
if(allRecorders>0)
{
%>
<br>
<br>
<input type="button" value="首页" onClick="openPage(1)" <%=currentPage==1"disabled":""%>>
<input type="button" value="上一页" onClick="openPage(<%=currentPage-1%>)" <%=currentPage==1"disabled":""%>>
<input type="button" value="下一页" onClick="openPage(<%=currentPage+1%>)" <%=currentPage==pageSize"disabled":""%>>
<input type="button" value="尾页" onClick="openPage(<%=pageSize%>)" <%=currentPage==pageSize"disabled":""%>>
<input type="hidden" name="cp" value="">
<font color="red" size="5"><%=currentPage%></font>
/
<font color="red" size="5"><%=pageSize%></font>
跳转到
<select name="selpage" onChange="selOpenPage()">
<%
for(int x=1;x<=pageSize;x++)
{
%>
<option value="<%=x%>" <%=currentPage==x"selected":""%>><%=x%></option>
<%
}
%>
</select>
页
<%
}
%>
</form>
<table border="1" width="80%">
<tr>
<td>编号</td>
<td>登陆名称</td>
<td>姓名</td>
<td>密码</td>
<td colspan="2"> *** 作</td>
</tr>
<%
int i = 0 ;
for(int x=0;x<(currentPage-1)lineSize;x++)
{
rsnext();
}
// 对于输出代码之前要求按显示的页数空出
for(int x=0;x<lineSize;x++)
{
if(rsnext())
{
i++ ;
int id = rsgetInt(1) ;
String userid = rsgetString(2) ;
String name = rsgetString(3) ;
String password = rsgetString(4) ;
%>
<tr>
<td><%=id%></td>
<td><%=userid%></td>
<td><%=name%></td>
<td><%=password%></td>
<td>更新</td>
<td>删除</td>
</tr>
<%
}
}
rsclose() ;
pstmtclose() ;
if(i==0)
{
%>
<tr>
<td colspan="6">没有任何数据!!</td>
</tr>
<%
}
%>
</table>
<%
}
catch(Exception e)
{
%>
<h2>系统出错!!!</h2>
<%
}
finally
{
connclose() ;
}
%>
</center>
</body>
</html>
自己看看吧,数据库自己建咯!
我代码中的分页
try {
count = s0102selectPageCount(); //查询数据库中的数据数目
pagesetTotalRow(count);
pageBar = pagegetToolsMenu();
Map<String,Integer> pageMap = new HashMap<String,Integer>();
pageMapput("start", pagegetStart());
pageMapput("end", pagegetEnd());
lr = thisgetS0102()Roles(pageMap);//返回个jsp的list信息
}
这要看你要在哪里分页了
在数据库分页 还是在Java代码中分页
我这里有数据库分页的和js分页的
不过我建议你用js分页的 传一个list就可以了。。
如需要源码发邮箱wanm100@vipqqcom
QQ:398329585
全部查出来就事伪分页了。你确定不会影响用户的体验。只不过伪分页更简单了。 *** 作的只是list结合。前端需要传送当前页到后台,把得到的数据封装成json格式传回前端。在通过js *** 作html的标签元素循环添加或者替换就行了 。希望对你有帮助
以上就是关于JSP能用List分页吗全部的内容,包括:JSP能用List分页吗、jsp分页查询、jsp 分页 如何处理啊!晕啊!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)