把用SQL查询的分页对象转化为内容为Object的分页对象

1.建立临时model类(由User类和Student类组成):
 public class UserTmp{
       private Integer userId;
       private String userName;
       private Integer userSex;
       private String userAddress;
       private String stuId;
       private String stuName;
      public void setUserId(Integer userId)
      {
         this.userId=userId;
      }
      public Integer getUserId()
      {
         return userId;
      }
       //剩下的省略
  }
2.DAO接口:
public inteface IUserDAO{
public Pagination findUserTmpCount(Integer userId,String userName,String dateStartTime,String dateEndTime,Integer pageNo, Integer pageSize) throws Exception;
}
3实现DAO类:
public class UserDAO extends BaseDaoHibernate< UserTmp, Long> implements IUserDAO{
  public Pagination findUserTmpCount(Integer userId,String userName,String dateStartTime,String dateEndTime,Integer pageNo, Integer pageSize) throws Exception
        {
                StringBuilder sql=new StringBuilder();
                sql.append("select * from ( ");
                sql.append(" select userId,userName,userAddress,createTime from Users ");
                sql.append(" left join ");
                sql.append(" select stuId,stuName from Student on Users.userId=Student.stuId ) t where 1=1 ");
                if(StringUtils.isNotBlank(userId))
                {
                        sql.append(" and t.userId="+Integer.parseInt(userid));
                }
                if(StringUtils.isNotBlank(userName))
                {
                        sql.append(" and t.userName='"+userName+"'");
                }
                    if(StringUtils.isNotBlank(startTime))
                {
                        sql.append(" and t.createTime >='"+startTime+" 00:00:00.000'");
                }
                if(StringUtils.isNotBlank(endTime))
                {
                        sql.append(" and t.createTime <='"+endTime+" 23:59:59.999'");
                }
                sql.append(" order by t.createTime desc ");
                Pagination p = pagedSqlQuery(sql.toString(), pageNo, pageSize);
                return convertPaginationToPaginationBaIspImgFile(p); }
        }
4.Service接口:
 public inteface IUserService {
 public Pagination findUserTmpCount(Integer userId,String userName,String dateStartTime,String dateEndTime,Integer pageNo, Integer pageSize) throws Exception; }
5.实现Service接口类:
public class UserService implements IUserService{
 @Resource
  private UserDAO userDao;
public Pagination findUserTmpCount(Integer userId,String userName,String dateStartTime,String dateEndTime,Integer pageNo, Integer pageSize) throws Exception
  {
      return userDao.findUserTmpCount(userId,userName,dateStartTime,dateEndTime,pageNo,pageSize);
    }
}
6.Action调用
public class UserAction extends ActionSupport{
  @Resource
  private IUserSerice userService;

  private Integer userId;
  private String userName;
  private List<UserTmp> userTmpList;
  //get/set方法省略
  private int pageSize=10;
public String showQuery()
        {
                try
                {
                        Pagination data=userService.findUserTmpCount(userId, username, createStartTime, createEndTime, getCurrentPage(), pageSize);
                        userTmpList=(List<UserTmp>)data.getList();
                        setTotalPage(data.getTotalPage());
                        totalCount=data.getTotalCount();
                        pagination=data;
                        
                }
                catch(Exception ex)
                {
                        log.error("异常",ex);
                }
               return SUCCESS;

}

原文地址:https://www.cnblogs.com/malcolm/p/2702991.html