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. Java并发包源码学习系列:线程池ThreadPoolExecutor源码解析

    目录 ThreadPoolExecutor概述 线程池解决的优点 线程池处理流程 创建线程池 重要常量及字段 线程池的五种状态及转换 ThreadPoolExecutor构造参数及参数意义 Work类 ...

  2. 51nod 1384 可重集的全排列

    对于1231,121,111等有重复的数据,我们怎么做到生成全排列呢 实际上,对于打标记再释放标记的这种方法,如果一开始第一层递归访问过1那么你再访问 就会完全重复上一次1开头的情况,那么递归地考虑这 ...

  3. Linux下开发STM32单片机

    一开始学习51单片机就是用的MDK这个IDE软件,IDE软件虽然看起来直观好像更加容易入门(因为有界面看起来很形象),但是实际上IDE却是向我们这些入门人员隐藏了背后真实存在的过程,让我们以为编译就是 ...

  4. Dart: 执行shell命令

    1 创建包 >stagehand console-full 2 安装插件 process_run: ^0.10.1 3 编写 bin/main.dart ... import 'package: ...

  5. Renice INC:不同颜色的酒帽所代表的意义

    酒帽就是酒瓶上方的热缩胶帽/锡帽/蜡封,也就是开瓶前要割掉的那一层保护物,所有的法国酒在酒帽上,都会有一个圆形贴纸,除了有不同颜色外,上面还有一串号码,有可能很多人在喝酒时都不会对这个酒帽有更多的在意 ...

  6. 「NGK每日快讯」2021.1.8日NGK第66期官方快讯!

  7. NGK与AOFEX交易所达成战略合作,BGV即将上线A网!

    据NGK官方消息,NGK官方已经与英国伦敦知名交易所AOFEX交易所达成战略合作,将于12月2日全球首发BGV,现已开启充值服务.同时,在12月3日15:00,用户可以参与BGV交易:在12月4日15 ...

  8. 【目标检测】用Fast R-CNN训练自己的数据集超详细全过程

    目录: 一.环境准备 二.训练步骤 三.测试过程 四.计算mAP 寒假在家下载了Fast R-CNN的源码进行学习,于是使用自己的数据集对这个算法进行实验,下面介绍训练的全过程. 一.环境准备 我这里 ...

  9. 03_MySQL重置root密码

    重设root密码

  10. JDK源码阅读-ByteBuffer

    本文转载自JDK源码阅读-ByteBuffer 导语 Buffer是Java NIO中对于缓冲区的封装.在Java BIO中,所有的读写API,都是直接使用byte数组作为缓冲区的,简单直接.但是在J ...