List list = session.createQuery("from Xxx x where ...").setFirstResult(0).setMaxResults(10).list();
解决方案 »
- 如图,debug检测的,求大神解释
- tomcat7.0不能发布struts项目??????
- 服务器上的tomcat 间断性的死掉,求解
- 接java项目
- form提交<select></select>到servlet时,页面没反应、也不报错.
- HQL语句在有sum(),group by函数的时候如何返回一个javabean 而不是object数组
- ibates和sping的事务问题
- 关于Java的一些基础问题(50分)
- 用Spring JdbcTemplate 查询出的Map,是如何产生大小写忽略的Key的?
- 遇到一个棘手的问题,看看大侠们能不能帮我解决??
- mysql数据库汉字乱码
- 一个奇怪的现象,不知道是jdbc问题还是oracle问题,请大家帮忙
import java.sql.*;
import java.lang.String;/**
* 只需传进三个参数,一个是每页显示记录集数,一个是记录集,一个是URL 取得分页效果只需调用一个getPage即可
*
* @mc1035
*/
public class PageNumber {
private int rowCount = 1, // 总的记录数。
pageSize = 1, // 每页显示的记录数。
showPage = 1, // 设置欲显示的页码数。
pageCount = 1; // 分页之后的总页数。
private ResultSet rs;
private String url;
private StringBuffer page = new StringBuffer();
private String formValue = "-1"; /*
* 设置记录集
*/
public void setRs(ResultSet a) {
rs = a;
try {
rs.last(); // 获取最后一行的行号:
rowCount = rs.getRow();// 获取
} catch (SQLException ex) {
ex.printStackTrace();
} } public ResultSet getRs() {
return rs;
} /*
* 设置url
*/
public void setUrl(String a) {
url = a;
} public String getUrl() {
return url;
} /*
* 设置总记录数
*/
public void setRowCount(int n) {
rowCount = n;
} public int getRowCount() {
return rowCount;
} /*
* 设置总的页数
*/
public void setPageCount() { int n = (rowCount % pageSize) == 0 ? (rowCount / pageSize) : (rowCount
/ pageSize + 1);
pageCount = n;
} public int getPageCount() {
return pageCount;
} /*
* 设置显示第几页
*/
public void setShowPage(int n) {
showPage = n;
} public int getShowPage() {
return showPage;
} /*
* 每页显示的记录数
*/
public void setPageSize(int n) {
pageSize = n; } public int getPageSize() {
return pageSize;
} /*
* 设置表单值
*/
public void setFormValue(String a) {
formValue = a;
} public String getFormValue() {
return formValue;
} public void setForm() { page.append("共有" + getRowCount() + "条记录");
page.append(" ");
page.append("总共" + getPageCount() + "页 ");
page.append("当前为第" + getShowPage() + "页");
page.append("每页显示" + getPageSize() + "条记录"); if (getShowPage() != 1) {
page.append("<Form action=\"" + url + "\" method=\"post\">");
page.append("<Input Type=\"hidden\" name=\"formValue\" value=\"1\">");
page.append("<Input name=\"submit4\" type=\"submit\" value=\"首页\">");
page.append("</FORM>");
} else {
page.append("           ");
}
if (getShowPage() != getPageCount()) {
page.append("<Form action=\"" + url + "\" method=\"post\">");
page.append("<Input Type=\"hidden\" name=\"formValue\" value=\""
+ (getShowPage() + 1) + "\">");
page.append("<Input name=\"submit4\" type=\"submit\" value=\"下一页\">");
page.append("</FORM>");
} else {
page.append("           ");
}
if (getShowPage() != 1) {
page.append("<Form action=\"" + url + "\" method=\"post\">");
page.append("<Input Type=\"hidden\" name=\"formValue\" value=\""
+ (getShowPage() - 1) + "\">"); page.append("<Input name=\"submit4\" type=\"submit\" value=\"上一页\">");
page.append("</FORM>");
} else {
page.append("           ");
}
if (getShowPage() != getPageCount()) {
page.append("<Form action=\"" + url + "\" method=\"post\">");
page.append("<Input Type=\"hidden\" name=\"formValue\" value=\""
+ getPageCount() + "\">"); page.append("<Input name=\"submit4\" type=\"submit\" value=\"末页\">");
page.append("</FORM>");
} else {
page.append("           ");
} page.append("<Form action=\"" + url + "\" method=\"post\">");
page.append("输入欲要显示的页<Input Type=\"text\" name=\"formValue\" size=\"5\" value=\""
+ getShowPage() + "\">"); page.append("<Input name=\"submit4\" type=\"submit\" value=\"GO\">");
page.append("</FORM>"); } public void showList() {
try {
page.append("<Table>");
page.append("<TR>");
ResultSetMetaData statName = rs.getMetaData(); for (int i = 1; i <= statName.getColumnCount(); i++) {
page.append("<TH>" + statName.getColumnName(i));
}
page.append("</TR>"); for (int i = 1; i <= getPageSize(); i++) {
page.append("<TR>");
for (int j = 1; j <= statName.getColumnCount(); j++) {
page.append("<TD>" + rs.getString(j) + "</TD>");
}
page.append("</TR>");
if (!rs.next()) {
break;
}
}
page.append("</Table>");
setForm(); } catch (Exception e) {
e.printStackTrace();
page.append(e);
}
} public String getPage() {
setPageCount();
try {
int n = 1;
if (formValue.equals("-1")) {
formValue = "1";
setShowPage(1);
rs.absolute((n - 1) * getPageSize() + 1); } else {
try {
n = Integer.parseInt(formValue);
if (n > getPageCount()) {
n = getPageCount();
}
if (n <= 0) {
n = 1;
}
setShowPage(n);
rs.absolute((n - 1) * getPageSize() + 1); } catch (NumberFormatException e) {
e.printStackTrace();
n = getShowPage();
rs.absolute((n - 1) * getPageSize() + 1);
}
}
} catch (SQLException ex) {
ex.printStackTrace();
}
showList(); String a = new String(page);
return a;
}}
import="java.sql.*,java.io.*"%>
<%@page import="com.mocha.bean.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<jsp:useBean id="pageNum" scope="page" class="com.mocha.bean.PageNumber" /> <%!
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int rowCount=0;
int pageSize=5;//每页显示的记录集数
%>
<% try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/newspublish","root","sa");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sql.executeQuery("select * from user");
%>
<% //URL
String str=response.encodeRedirectURL("index.jsp");
//下面的是Bean的参数,可根据需要自行修改
%> <jsp:setProperty name="pageNum" property="formValue" param="formValue" />
<jsp:setProperty name="pageNum" property="rs" value="<%=rs%>" />
<jsp:setProperty name="pageNum" property="pageSize" value="<%=pageSize%>" />
<jsp:setProperty name="pageNum" property="url" value="<%=str%>" />
<jsp:getProperty name="pageNum" property="page" /> <%
rs.close();
con.close();
}catch(SQLException e){
e.printStackTrace();
out.print(e);
rs.close();
con.close();
}
%> </body>
</html>
下面是hibernate里面分页的方法
public List getListForPage(final String hql, final int offset, final int length) {
List retList = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return retList;
}
setFirstResult(0):表示从第1条记录开始查,如果是第N页,就从(N-1)*pagesize开始
setMaxResults(10):表示总共取10条记录,即pagesize
<c:if test=${首页} ></c:if>
<c:if test=${上一页} ></c:if>
<c:if test=${下一页} ></c:if>
<c:if test=${尾页} ></c:if>当然我只是说个意思。想加下柆框。也容易反正只要改变条数 改变 pageSize 就可以了改变页数 改变 currentPage 就可以了