空指针异常!感谢解决!

u010839098 2013-06-06 03:53:54
package pagination;
import java.util.List;
import org.springframework.orm.hibernate3.HibernateTransactionManager;
import com.session.local.HibernateSessionFactory;

/**
* @author
*
*/

数据库分页基类:
public abstract class Pagination {
private String sql;
public final int pageSize=2; // 每页显示的行数
private int rowsCount; // 总行数
private int pagesCount; // 总页数
private HibernateTransactionManager transactionManager;
public void setTransactionManager(HibernateTransactionManager transactionManager)
{
this.transactionManager=transactionManager;
}


// 在设置SQL语句时计算总行数和总页数,
// 这样总行数只要查询一次,可以提高效率!
public void setSQL(String sql) {
this.sql = sql;

// 获取总行数并计算总页数
this.rowsCount = countRows();
this.pagesCount = countPages();
}

public String getSQL() {
return sql;
}


public int getRowsCount() {
return rowsCount;
}

public int getPagesCount() {
return pagesCount;
}

public List<?> getPage(int page) {

List<?> list = HibernateSessionFactory.getSession().createQuery(this.sql)
.setFirstResult((page-1)*pageSize)
.setMaxResults(pageSize) .list();
return list;
}

//计算总记录数
private int countRows() {
String countSql = this.sql;
int fromPos = countSql.indexOf(" from ");
countSql = countSql.substring(fromPos);
countSql = "select count(*) " + countSql;
List<?> list= HibernateSessionFactory.getSession().createQuery(countSql).list();
int count =(Integer)list.get(0);
return count;
}

// 计算总页数
private int countPages() {
if ((rowsCount % pageSize) == 0) {
return rowsCount / pageSize;
} else {
return (rowsCount /pageSize + 1);
}
}



}

public String execute() {
ActionContext context = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest)context.get(ServletActionContext.HTTP_REQUEST);
String action = request.getParameter("action");
if (action.equals("0")) {
String sql="select * from Users";
空指针异常: uado.setSQL(sql);
List<?> users =uado.getPage(1);// 获取当前页码的用户记录
request.setAttribute("users", users);
request.setAttribute("pageSize", uado.pageSize);// 每页显示的行数
request.setAttribute("rowscount", uado.getRowsCount());// 总记录数
request.setAttribute("pageno", 1);// 当前页码
request.setAttribute("pagescount",uado.getPagesCount());// 总页数

...全文
61 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧