MVC模型:Hibernate+Struts2

dao层:

public List<UserBean> searchList(UserBean uBean,int pageIndex,int pageSize);

impl层:

@SuppressWarnings( "unchecked" )
public List<UserBean> searchList(UserBean uBean,int pageIndex,int pageSize) {
Session session = HibernateUtils.getSessionFactory().openSession();
Criteria criteria = session.createCriteria(UserBean.class);
if (uBean != null) {
if (StringUtil.isNotEmpty(uBean.getName())) {
criteria.add(Restrictions.like("name", uBean.getName(),MatchMode.ANYWHERE));
}
if (StringUtil.isNotEmpty(uBean.getPwd())) {
criteria.add(Restrictions.like("pwd", uBean.getPwd(),MatchMode.ANYWHERE));
}
if (StringUtil.isNotEmpty(uBean.getType())) {
criteria.add(Restrictions.like("type", uBean.getType(),MatchMode.ANYWHERE));
}
}

criteria.addOrder(Order.asc("id"));  //根据id排序
//criteria.addOrder(Order.desc("name"));

Long totalNum = (Long)criteria.setProjection(Projections.rowCount()).uniqueResult(); //总数量
int totalPage = (int) ((totalNum + pageSize -1) / pageSize);
int startIndex = (pageIndex-1)*pageSize;

criteria.setProjection(null);
criteria.setFirstResult(startIndex);
criteria.setMaxResults(pageSize);
System.out.println("总数="+totalNum+"总页数="+totalPage);

List<UserBean> list = criteria.list();
/*Iterator iterator = list.iterator();    //测试 -- 打印返回数据
while (iterator.hasNext()) {
UserBean userBean = (UserBean) iterator.next();
System.out.println("============"+userBean.getName()+","+userBean.getCreateTime());
}*/
return list;

}

server层:

public List<UserBean> searchBeans(UserBean uBean,int pageIndex,int pageSize){
List<UserBean> list = (List<UserBean>) dao.searchList(uBean,pageIndex,pageSize);
if (list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
System.out.println("-------数据信息为:"+list.get(i).getId()+","+list.get(i).getName()+","+list.get(i).getCreateTime());
}
System.out.println("=====每页条目数="+pageSize);
}
return list;
}

调用:

//方法

public static String queryByUserBean() throws Exception{
UserBeanServerDaoImpl sImpl = new UserBeanServerDaoImpl();
UserBean uBean = new UserBean();
//uBean.setName("bb");
//uBean.setPwd("45");
//uBean.setType("1");
int pageIndex = 3;
int pageSize = 10;
sImpl.searchBeans(uBean,pageIndex,pageSize);
return null;
}

public static void main(String[] args) {

try {

queryByUserBean();    //测试

} catch (Exception e) {
e.printStackTrace();
}
}

Hibernate 组合查询+分页的更多相关文章

  1. webform 分页、组合查询综合使用

    界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...

  2. linq分页组合查询

    一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...

  3. Web 组合查询加 分页

    使用ADO.NET 数据访问技术制作web端组合查询加分页的功能关键在于查询SQL语句的拼接 以Car 表为例 每页显示3条数据 数据访问类使用查询方法,tsql 查询的连接字符串,查询的参数放到Ha ...

  4. ajax分页与组合查询配合使用

    使用纯HTML页与js.ajax.Linq实现分页与组合查询的配合使用 <body> <div id="top"><input type=" ...

  5. Webform(Linq高级查、分页、组合查询)

    一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...

  6. Webform(分页与组合查询配合使用)

    1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...

  7. webform:分页组合查询

    一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql"& ...

  8. webform组合查询和分页

    1.组合查询(1)数据访问类 //参数1:SQL语句 参数2:哈希表public List<Users> chas(string s,Hashtable has) { List<Us ...

  9. Webform(分页、组合查询)

    一.分页 1.写查询方法: public List<Student> Select(int PageCount, int PageNumber) {//PageCount为每页显示条数,P ...

随机推荐

  1. Kubernets二进制安装(2)之Bind9安装

    1.修改主机名 hostnamectl set-hostname mfyxw10 hostnamectl set-hostname mfyxw20 hostnamectl set-hostname m ...

  2. 高并发之ReentrantLock、CountDownLatch、CyclicBarrier

    本系列研究总结高并发下的几种同步锁的使用以及之间的区别,分别是:ReentrantLock.CountDownLatch.CyclicBarrier.Phaser.ReadWriteLock.Stam ...

  3. 正则表达式 js 怎么获取匹配的变量

    正则表达式 js 怎么获取匹配的变量 $0 ~ $9 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  4. making a resizable div effect in vanilla js

    making a resizable div effect in vanilla js scroll image compare <!DOCTYPE html> <html lang ...

  5. React Native & Security

    React Native & Security https://reactnative.dev/docs/security React Native blogs https://reactna ...

  6. npm-run-all

    npm-run-all npm scripts https://www.npmjs.com/package/npm-run-all A CLI tool to run multiple npm-scr ...

  7. Python Lambda & Functional Programming

    Python Lambda & Functional Programming 函数式编程 匿名函数 纯函数 高阶函数 # higher-order functions def apply_tw ...

  8. ES2020 All in One

    ES2020 All in One ES2020 new features / ES11 ES2020 中的10个新功能 1. BigInt BigInt是JavaScript中最令人期待的功能之一, ...

  9. zsh all in one

    zsh all in one zsh https://ohmyz.sh/ # install $ sh -c "$(curl -fsSL https://raw.github.com/ohm ...

  10. 创新全球算力生态价值,SPC算力生态强势来袭!

    当前,区块链技术已经到了一个新的时代,即3.0时代.在区块链3.0时代,区块链技术迎来了数字经济革命,各行各业也在积极寻找与区块链能够融合的切入点.而随着区块链的愈加成熟,区块链技术也愈加被更多的人应 ...