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. 缓冲区溢出实验 4 内存管理(类似于malloc free)

    实验环境.代码.及准备 https://www.cnblogs.com/lqerio/p/12870834.html vul4 观察foo函数,可见问题在于最后一次tfree(q).由于之前已经tfr ...

  2. PTA L1-006 连续因子【暴力模拟】

    一个正整数N的因子中可能存在若干连续的数字.例如630可以分解为3*5*6*7,其中5.6.7就是3个连续的数字.给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列. 输入 ...

  3. xss 之herf输出

    首先查看下漏洞页面,发现输入的1111,  直接传参到herf 中, 查阅资料得知: 输出出现在a标签的href属性里面,可以使用javascript协议来执行js 查看源代码: if(isset($ ...

  4. DLL & Dynamic-link library

    DLL & Dynamic-link library 动态链接库 .dll 动态链接库(英语:Dynamic-link library,缩写为 DLL)是微软公司在微软视窗操作系统中实现共享函 ...

  5. API & YApi

    API & YApi 接口管理服务 YApi http://yapi.demo.qunar.com/ https://ued.qunar.com/ build bug https://gith ...

  6. website & blogs & about me & contact

    website & blogs & about me & contact demos https://davidwalsh.name/about-david-walsh htt ...

  7. Angular Routing

    Angular Routing v9.0.7 https://angular.io/start/start-routing

  8. taro router

    taro router https://nervjs.github.io/taro/docs/router.html bug import Taro, { Component, Config } fr ...

  9. nodejs 创建tcp/udp服务器和客户端

    TCP server // https://nodejs.org/api/net.html const net = require("net"); // https://nodej ...

  10. BigDecimalUtil:对double类型的数据进行处理(加减乘除、四舍五入、类型转换、比较两个值的大小)

    该工具类所在的包:import java.math.BigDecimal; 项目中使用该工具类的相关代码: // 如果Output表中已经存在该节点(插入数据的节点)的信息,则修改Output表中的这 ...