Spring mvc+Hibernate 实现后台数据查询分页
jquery+jsp实现页面局部刷新
框架已经搭好
一、数据联合查询
联合查询的表结构应相似,利用表别名和构照的联合信息表存储查询结果
1.定义联合查询的实体表UnionStudent.java
class UnionStudent{
private String name;
private String sex;
getter()..
setter()..
}
2.定义分页类PageConfig.java
class PageConfig{
private static int pageSize=10;//每页显示10条记录
private static int pageNo=1;//其实页为1
}
3.方法实现类 UnionStudentServiceImpl.java
@service
@Transactional(rollBackFor=RuntimeException.class)
class UnionStudentServiceImpl implments UnionStudentService{
@Autowired
private UserDao userDao;
/**
*分页方法
*pageConfig 分页类
*sex 搜索条件
*/
@Override
public List<UnionStudent> getInfoForPage(PageConfig pageConfig,String sex){StringBuffer sBuffer=new StringBuffer();
String sql1="select t1.studentName as name,t2.studentSex as sex from student1 t1 ";
String sql1="select t2.studentName as name,t2.studentSex as sex from student2 t2 ";
String sql1="select t3.studentName as name,t3.studentSex as sex from student3 t3 ";
String conn="union all ";
if(sex!=null){
sBuffer.append("select * from ( ").append(sql1).append(conn).append(sql2).append(conn).append(sql3).append( " ) where sex='"+sex+"' ");
}else{
sBuffer.append(sql1).append(conn).append(sql2).append(conn).append(sql3);
}
Query query = userDao
.createSQLQuery(sBuffer.toString())
.addScalar("name", StringType.INSTANCE)
.addScalar("sex ", StringType.INSTANCE)
.setResultTransformer(
Transformers.aliasToBean(UnionStudent.class));
query.setFirstResult((pageConfig.pageNo - 1) * pageConfig.pageSize);
query.setMaxResults(pageConfig.pageSize);