把用SQL查询的分页对象转化为内容为Object的分页对象
2012-09-25 21:24
399 查看
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;
}
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;
}
相关文章推荐
- sql语句转化为分页查询的一种实现
- 将sql查询出来的数据转化为对象
- Hibernate中用纯SQL查询,并通过hibernate分页返回List<对象>
- Java中使用hql,sql查询返回的list<Object> 转成需要的实体对象--方法讲解!
- sql拼接实现自由多条件查询及内容分页总结
- PHP-Yii-表查询分页、通过sql语句查询对查询内容分页
- Scripts:查询数据库对象汇总dba_object_summary.sql
- hibernate的3中查询举例——返回对象或转化对象、返回Object
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- Hibernate查询之SQL查询,查询结果用new新对象的方式接受,hql查询,通过SQL查询的结果返回到一个实体中,查询不同表中内容,并将查到的不同表中的内容放到List中
- 分页查询SQL&&Page对象
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- SQL优化-索引、查询优化及分页算法方案
- SQL分页查询的几种方式
- Web开发——获取查询内容(内容分页显示)【前台页面部分】
- List<ExpendoObject> 对象使用Linq 查询.
- Object对象的内容利用js技术查看
- SQL大数据查询分页存储过程
- 在数据库表中分页查询数据的SQL