核心实现代码:
@Override
public Map<String ,Object> getBackUserNurseBeanList( String name, Integer pageNo) {
if(pageNo == null){
pageNo = 1;
}
//设置hql语句
StringBuffer sql = new StringBuffer();
String sql0 ="select new com.javajy.nurse.Dto.BackUserNurseBean (b.password, n.phone) ";
sql.append("from BackUser b, Nursingworkers n where b.id= n.userId ");
final Map<String, Object> PARAMS = new HashMap<String, Object>();
if(StringUtils.isNotEmpty(name)){
sql.append(" and b.name like :name");
PARAMS.put("name", "%"+name+"%");
}
//获取总数
long count = getRowsNew(sql.toString(),PARAMS,null);
sql.append(" order by b.id desc");
//设置显示条数
int pageSize = Constant.pageWebSize;
//设置总页数
int allPage = (int) (count%Constant.pageWebSize ==0 ? count/Constant.pageWebSize : count/Constant.pageWebSize+1);
//设置返回值
Map<String ,Object> result = new HashMap<String ,Object> ();
//设置数据属性
List<Object> dataProperty = findListPageNew(sql0 + sql.toString(), PARAMS, (pageNo - 1)*pageSize, pageSize);
if(dataProperty == null || dataProperty.size() == 0){
result.put("count", 0);
result.put("allPage", 1);
result.put("data", dataProperty);
return result;
}
List<BackUserNurseBean> dataBeanList = new ArrayList<BackUserNurseBean>();
for(Object bu : dataProperty){
dataBeanList.add((BackUserNurseBean)bu);
}
result.put("count", count);
result.put("allPage", allPage);
result.put("data", dataBeanList);
return result;
}
里面提到的bean 记得要有构造器
/**
* 类功能描述
* @version
* @author flyer 2018年1月15日下午3:35:06
* @since 1.8
*/
public class BackUserNurseBean {
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
private String password;
private String phone;
public BackUserNurseBean(String password, String phone) {
super();
this.password = password;
this.phone = phone;
}
}
以下两个方法写入basedaoimpl 这种类里面 基础函数
getRowsNew 方法 //使用 p=:name 不使用 p=? 样式
@Override
public long getRowsNew(String query, Map<String, Object> params ,Class<?> entityClass){
String queryString = "select count(*) "; // from " + entityClass.getSimpleName();
if (query != null) {
queryString += " " + query;
}
Query q = sessionFactory.getCurrentSession().createQuery(queryString);
if (params != null) {
q.setProperties(params) ; // params 可以是list 支持list结构
}
return (Long) q.list().get(0);
}
findListPageNew方法
public List<Object> findListPageNew(String hql, Map<String, Object> params,
int first, int max) {
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setProperties(params); // params 可以是list 支持list结构
query.setFirstResult(first);
query.setMaxResults(max);
return query.list();
}
参考:
http://blog.csdn.net/damogu_arthur/article/details/46924805