`

Java分页操作2 SQL

    博客分类:
  • Java
阅读更多
SQL语句:
/**
	 * <p>Method :queryMzjInfo
	 * <p>Description : 民政局信息查询
	 *
	 * @param mzjInfo
	 * @param pageNum
	 * @param pageSize
	 * @return 
	 */
	@SuppressWarnings("unchecked")
	public  List<FrkMzjMbstjbxx> queryMzjInfo(final MzjQueryConditionPoJo mzjInfo, final int 

pageNum, final int pageSize) {
		return (List<FrkMzjMbstjbxx>)this.getHibernateTemplate().executeFind(new 

HibernateCallback() {
			public Object doInHibernate(Session session) throws HibernateException, 

SQLException {
				StringBuffer queryHQL = new StringBuffer();
				queryHQL.append("SELECT " +
						"T.MZFRJBQKID, T.DWBH, T.ZZJGDM, T.DJSJ, T.DJBM, 

T.BMDJZH, T.BMJHM, T.DWMC, T.FDDBRXM, " +
						"(SELECT MAX(CODE_NAME) FROM C##ZCK_HXK.UP_CODELIST 

WHERE CODE_VALUE = T.ZJLX AND CODETYPE = 'CB16') AS ZZLXNAME, " +
						"T.ZJHM, T.DZ, T.YB, T.DH, T.HYFL, T.MZFL, T.FZJG, 

T.MJZZFZRS, T.CYRS, T.ZLSHGZSRS, T.SHGZSRS, T.ZXKJZD, T.GDZCYJ, T.BNSRHJ, T.BNFYHJ, T.YWZGBM, 

T.KBZJ, " +
						"(SELECT MAX(CODE_NAME) FROM C##ZCK_HXK.UP_CODELIST 

WHERE CODE_VALUE = T.SFJLDZZ AND CODETYPE = 'CEX01') AS SFJLDZZNAME, " +
						"T.NJSJ,T.ZJLX, T.SFJLDZZ,T.DNSFNJ, " +
						"(SELECT MAX(CODE_NAME) FROM C##ZCK_HXK.UP_CODELIST 

WHERE CODE_VALUE = T.DNSFNJ AND CODETYPE = 'CEX01') AS DNSFNJNAME " +
						"FROM FRK_MZJ_MBSTJBXX T,FRK_JCXX T1 WHERE 

(T1.ZZJGDM = T.ZZJGDM OR T1.JGMC = T.DWMC) ");
				List<Object> params = new ArrayList<Object>();
				if(mzjInfo != null)
				{
					//组织机构代码
					if(StringUtils.isNotBlank(mzjInfo.getZzjgdm())){
						queryHQL.append(" AND T.ZZJGDM = ? ");
						params.add(mzjInfo.getZzjgdm());
					}
					//单位名称
					if(StringUtils.isNotBlank(mzjInfo.getDwmc())){
						queryHQL.append(" AND T.DWMC LIKE ? ");
						params.add("%" + mzjInfo.getDwmc() + "%");
					}
					//登记时间自
					if(mzjInfo.getDjsjfrom()!=null){
						queryHQL.append(" AND T.DJSJ >= ? ");
						params.add(mzjInfo.getDjsjfrom());
					}
					//登记时间至
					if(mzjInfo.getDjsjto()!=null){
						queryHQL.append(" AND T.DJSJ <= ? ");
						params.add(mzjInfo.getDjsjto());
					}
					//登记部门
					if(StringUtils.isNotBlank(mzjInfo.getDjbm())){
						queryHQL.append(" AND T.DJBM LIKE ? ");
						params.add("%" + mzjInfo.getDjbm() + "%");
					}
					//部门交换码
					if(StringUtils.isNotBlank(mzjInfo.getBmjhm())){
						queryHQL.append(" AND T.BMJHM = ? ");
						params.add(mzjInfo.getBmjhm());
					}
				}
				queryHQL.append(" ORDER BY T.DJSJ DESC,T.MZFRJBQKID DESC");  
				Query query = ((SQLQuery) session.createSQLQuery(queryHQL.toString

())).
						addScalar("mzfrjbqkid", Hibernate.STRING).
						addScalar("dwbh", Hibernate.STRING).
						addScalar("zzjgdm", Hibernate.STRING).
						addScalar("djsj", Hibernate.DATE).
						addScalar("djbm", Hibernate.STRING).
						addScalar("bmdjzh", Hibernate.STRING).
						addScalar("bmjhm", Hibernate.STRING).
						addScalar("dwmc", Hibernate.STRING).
						addScalar("fddbrxm", Hibernate.STRING).
						addScalar("zjlx", Hibernate.STRING).
						addScalar("zjhm", Hibernate.STRING).
						addScalar("dz", Hibernate.STRING).
						addScalar("yb", Hibernate.STRING).
						addScalar("dh", Hibernate.STRING).
						addScalar("hyfl", Hibernate.STRING).
						addScalar("mzfl", Hibernate.STRING).
						addScalar("fzjg", Hibernate.LONG).
						addScalar("mjzzfzrs", Hibernate.INTEGER).
						addScalar("cyrs", Hibernate.INTEGER).
						addScalar("zlshgzsrs", Hibernate.INTEGER).
						addScalar("shgzsrs", Hibernate.INTEGER).
						addScalar("zxkjzd", Hibernate.STRING).
						addScalar("gdzcyj", Hibernate.BIG_DECIMAL).
						addScalar("bnsrhj", Hibernate.BIG_DECIMAL).
						addScalar("bnfyhj", Hibernate.BIG_DECIMAL).
						addScalar("ywzgbm", Hibernate.STRING).
						addScalar("kbzj", Hibernate.BIG_DECIMAL).
						addScalar("sfjldzz", Hibernate.STRING).
						addScalar("njsj", Hibernate.DATE).
						addScalar("dnsfnj", Hibernate.STRING).
						addScalar("zzlxname", Hibernate.STRING).
						addScalar("sfjldzzname", Hibernate.STRING).
						addScalar("dnsfnjname", Hibernate.STRING).
						setResultTransformer(Transformers.aliasToBean

(FrkMzjMbstjbxx.class));
				 
				if(params!=null){
                    for(int i=0;i<params.size();i++){
                       query.setParameter(i, params.get(i));
                    }
               }
               
               if(pageSize>0){
                   query.setMaxResults(pageSize);
                   query.setFirstResult((pageNum-1)*pageSize);
               }
               
               return query.list();
			}
		});	
	}

/**
	 * <p>Method :queryMzjInfoCount
	 * <p>Description : 民政局信息查询记录数
	 *
	 * @param mzjInfo
	 * @return 
	 */
	public Integer queryMzjInfoCount(final MzjQueryConditionPoJo mzjInfo){
		return (Integer)this.getHibernateTemplate().execute(new HibernateCallback() {
            public Integer doInHibernate(Session session)throws HibernateException, SQLException {
            	StringBuffer queryHQL = new StringBuffer();
				queryHQL.append("SELECT COUNT(*) FROM FRK_MZJ_MBSTJBXX T,FRK_JCXX 

T1 WHERE (T1.ZZJGDM = T.ZZJGDM OR T1.JGMC = T.DWMC) ");
				List<Object> params = new ArrayList<Object>();
				if(mzjInfo != null)
				{
					//组织机构代码
					if(StringUtils.isNotBlank(mzjInfo.getZzjgdm())){
						queryHQL.append(" AND T.ZZJGDM = ? ");
						params.add(mzjInfo.getZzjgdm());
					}
					//单位名称
					if(StringUtils.isNotBlank(mzjInfo.getDwmc())){
						queryHQL.append(" AND T.DWMC LIKE ? ");
						params.add("%" + mzjInfo.getDwmc() + "%");
					}
					//登记时间自
					if(mzjInfo.getDjsjfrom()!=null){
						queryHQL.append(" AND T.DJSJ >= ? ");
						params.add(mzjInfo.getDjsjfrom());
					}
					//登记时间至
					if(mzjInfo.getDjsjto()!=null){
						queryHQL.append(" AND T.DJSJ <= ? ");
						params.add(mzjInfo.getDjsjto());
					}
					//登记部门
					if(StringUtils.isNotBlank(mzjInfo.getDjbm())){
						queryHQL.append(" AND T.DJBM LIKE ? ");
						params.add("%" + mzjInfo.getDjbm() + "%");
					}
					//部门交换码
					if(StringUtils.isNotBlank(mzjInfo.getBmjhm())){
						queryHQL.append(" AND T.BMJHM  = ? ");
						params.add(mzjInfo.getBmjhm());
					}
				}
				Query query = (SQLQuery) session.createSQLQuery(queryHQL.toString

());
                if(params!=null){
                    for(int i=0;i<params.size();i++){
                       query.setParameter(i, params.get(i));
                    }
               }
                Object[] result = query.list().toArray();
                return  ((BigDecimal)result[0]).intValue();
            }
        });
	}
分享到:
评论

相关推荐

    java语言的分页查询功能(mysql和sql server)

    总结,Java中的分页查询涉及数据库操作、SQL构造和Java代码实现。理解分页原理和数据库分页语法,掌握JDBC基本用法,再根据实际需求选择是否使用框架进行优化,是实现高效分页查询的关键。无论是在MySQL还是SQL ...

    java 连接sqlserver数据库查询,并分页显示

    在Java编程中,连接SQL Server数据库并执行查询是常见的任务,尤其当涉及到大量数据时,分页显示就显得尤为重要。本篇文章将详细讲解如何使用Java连接SQL Server数据库,执行查询语句以及实现分页显示。 首先,我们...

    java简单分页技术mysql 内涵.sql文件,直接实现

    在Java开发中,数据库操作是不可或缺的一部分,尤其是在处理大量数据时,分页查询技术显得尤为重要。这不仅可以提高页面加载速度,还可以减少服务器负担,优化用户体验。本知识点将围绕"Java简单分页技术与MySQL...

    java编写的分页操作

    在Java编程中,分页操作是一项非常常见的任务,特别是在处理大量数据时,为了提高用户体验,我们需要将数据分批次展示,而不是一次性加载所有内容。这里,我们聚焦于"java编写的分页操作"这一主题,结合描述中的信息...

    java中对sql分页PageBean

    java中对sql分页PageBean

    mysql、sqlserver、oracle分页,java分页统一接口实现

    MySQL、SQL Server、Oracle 分页是关系数据库管理系统中最基本也是最常用的操作之一,而 Java 分页统一接口实现则是对数据库操作的抽象和封装。本文将对 MySQL、SQL Server、Oracle 分页的实现进行详细的介绍,并...

    java 通用分页 java 通用分页

    2. 分页方式 分页方式有多种,包括假分页和真实分页。假分页是指在客户端对数据进行分页,而真实分页是指在服务器端对数据进行分页。在本文中,我们使用存储过程进行分页,这是一种高效的分页方式。 3. 存储过程...

    java分页代码完整版

    本资源提供了一个完整的Java分页代码实现,包括注释,非常适合初学者学习和实践。 分页的核心原理是通过查询数据库时限制返回结果的数量,同时提供一个偏移量来指定从哪一条数据开始获取。在Java中,我们可以使用...

    java分页组件和poolman demo

    Java分页组件是Java开发中常见的一种工具,用于在处理大量数据时,将结果集分割成多页显示,以提高用户界面的响应速度和用户体验。Oracle数据库是企业级常用的数据库系统,它支持复杂的SQL查询和大数据量的处理。在...

    Oracle的SQL分页实践

    在Java开发中,通常使用JDBC或者ORM框架如Hibernate来实现数据库的分页操作。使用JDBC时,可以结合LIMIT和OFFSET子句(Oracle不支持LIMIT,但可以通过ROWNUM模拟)来实现分页,而在Hibernate中,可以使用Criteria ...

    java分页工具类

    这里的"java分页工具类"就是为了解决这一问题而设计的,它允许开发者通过指定起始页号和每页显示的条数来实现高效且灵活的分页功能。 分页的核心思想是将数据库中的数据分割成多个部分,每次只加载一部分(即一页)...

    java分页(三种数据库)

    本篇将详细介绍如何在SQL Server、MySQL和Oracle这三种主流数据库中实现Java分页。 一、SQL Server的Java分页 在SQL Server中,可以使用`OFFSET`和`FETCH`关键字实现分页。假设我们有一个名为`users`的表,想要...

    java分页大全 包括最强大的java分页类

    本资源包"java分页大全"提供了多种Java分页实现,旨在帮助开发者更高效地进行数据查询和展示。 首先,我们来探讨一下Java分页的基本原理。分页通常涉及两个关键部分:一是计算当前页的数据范围,二是根据这个范围从...

    JAVA分页实现JAVA+JS+HTML

    2. **LIMIT与OFFSET**:在SQL中,我们使用LIMIT来限制返回的记录数,OFFSET则用于跳过前几条记录,这两者结合实现了分页。 3. **Page对象**:在JAVA中,我们可以创建一个Page对象,包含当前页码、每页记录数、总页数...

    sql分页、jsp分页

    jsp分页、PLSQL中用Group by和Having来实现分组统计、SQL_server_海量数据库查询优化及分页算法、SQL_SERVER数据库中实现快速的数据提取和数据分页、SQLServer 2005下的分页SQL、sql分页查询、sql数据库模糊查询分页...

    JAVA分页大全(下载)

    MyBatis提供了动态SQL功能,可以通过`&lt;if&gt;`、`&lt;choose&gt;`等标签编写灵活的分页SQL。同时,MyBatis-Plus扩展库提供更简单的分页API,如`Page`对象,可以自动处理分页逻辑。 5. **Spring Data JPA分页** Spring Data...

    java 数据分页显示

    在Java编程中,数据分页显示是Web应用中常见的需求,尤其在处理大量数据时,为了提高用户体验并优化服务器性能,通常需要将数据分成多个页面进行展示。本篇将深入探讨Java实现数据分页显示的核心技术和策略。 首先...

    java分页插件,简单实用

    Java分页插件是开发大型数据应用时必不可少的工具,它可以帮助我们有效地管理数据库查询,减少服务器负担,提高用户体验。本插件以简单实用为特点,适合初学者和经验丰富的开发者使用,允许用户根据自己的需求进行...

    实用java分页标签

    2. **自定义分页标签**:有时,JSTL提供的功能可能无法满足特定需求,这时可以创建自定义的Java分页标签。这通常涉及两个部分:一个是在后端实现的Tag Handler类,用于处理分页逻辑,包括计算总页数、当前页等信息;...

    java分页方法总结

    ### Java分页方法总结 #### 一、MySQL的分页技术 MySQL的分页操作相对简单,主要通过`LIMIT`语句实现。该语句允许开发者指定查询结果集中的起始位置以及返回的行数。这为实现网页上的分页功能提供了极大的便利。 ...

Global site tag (gtag.js) - Google Analytics