`

dao

阅读更多

/ 更新Session
        Session session = super.getSession();
       
        // 初始化一个空列表
        List<DeptResInstalBO> objectBOList = new ArrayList();

        // 初始化一个查询总记录SQL语句的字符串
        StringBuffer queryAcountString = new StringBuffer(
                "SELECT COUNT(distinct a.DEPARTMENT_ID) FROM CLM_GFS_DEPARTMENTS a " +
                "LEFT JOIN CLM_GFS_DEPT_HOLDERS b ON a.DEPARTMENT_ID = b.DEPARTMENT_ID WHERE '1'='1' ");

        // 初始化一个查询的SQL语句的字符串
        StringBuffer queryString = new StringBuffer(
                "SELECT DEPARTMENT_NAME, DEPARTMENT_ID, wmsys.wm_concat(USERNAME) as USERNAME " +
                "FROM (SELECT a.DEPARTMENT_ID, a.DEPARTMENT_NAME, b.USERNAME " +
                       "FROM CLM_GFS_DEPARTMENTS a " +
                       "LEFT JOIN (SELECT DEPARTMENT_ID, b.LAST_NAME || b.FIRST_NAME AS USERNAME " +
                                  "FROM CLM_GFS_DEPT_HOLDERS a, PER_ALL_PEOPLE_F b " +
                                  "WHERE a.USER_ID = b.PERSON_ID) b ON a.DEPARTMENT_ID = b.DEPARTMENT_ID WHERE '1'='1' ");

        // 判断查询条件人员名称是否为空
        if (object.getPerson_name() != null
                && object.getPerson_name()!="")
        {
            queryAcountString = queryAcountString
                    .append(" AND b.USER_ID = :USER_ID");
            queryString = queryString.append("AND a.DEPARTMENT_ID IN (SELECT d.DEPARTMENT_ID " +
                                             "FROM CLM_GFS_DEPT_HOLDERS d " +
                                             "WHERE d.user_id = :USER_ID) ");
        }
       
        // 判断查询条件科室名称是否为空
        if (object.getDept_name() != null
                && object.getDept_name()!="" )
        {
            queryAcountString = queryAcountString
                    .append(" AND a.DEPARTMENT_NAME LIKE :DEPARTMENT_NAME");
            queryString = queryString
                    .append(" AND a.DEPARTMENT_NAME LIKE :DEPARTMENT_NAME");
        }
       
        queryString = queryString
                .append(") GROUP BY DEPARTMENT_NAME, DEPARTMENT_ID ORDER BY DEPARTMENT_ID DESC ");
       
        // 将queryAcountString中的属性放入Query集中
        Query qCount = session.createSQLQuery(queryAcountString.toString());

        // 将queryString中的属性放入Query集中
        Query q = session.createSQLQuery(queryString.toString());
       
        // 判断查询条件人员名称是否为空,给查询条件赋值
        if (object.getPerson_name() != null
                && object.getPerson_name()!="")
        {
            q.setParameter("USER_ID", object.getPerson_id());
            qCount.setParameter("USER_ID", object.getPerson_id());
        }
       
        // 判断查询条件科室名称是否为空,给查询条件赋值
        if (object.getDept_name() != null
                && object.getDept_name()!="")
        {
            q.setParameter("DEPARTMENT_NAME",  "%"+object.getDept_name()+"%");
            qCount.setParameter("DEPARTMENT_NAME", "%"+object.getDept_name()+"%");
        }
       
        // 设置记录总数
        object.getPageData().setTotalRow((Integer.parseInt(qCount.list().get(0)+"")));

        // 设置页面第一行记录
        q.setFirstResult((object.getPageData().getPageNum() - 1)
                * object.getPageData().getPageSize());

        // 设置每页记录的最大数
        q.setMaxResults(object.getPageData().getPageSize());
       
        // 存放q里的记录
        List<Object[]> objectList = q.list();
       
        // 遍历列表,将列表中的属性取出,最后赋给DeptResInstalBO对象
        for (int i = 0; i < objectList.size(); i++)
        {
           
            // 取出查询后的数据的科室名称
            String departmentName=objectList.get(i)[0]+"";
           
            // 取出查询后的数据的科室id
            Integer departmentId=Integer.parseInt(objectList.get(i)[1]+"");
           
            // 取出查询后的数据的姓名和id的组合字符串
            String userIdAndName=objectList.get(i)[2]+"";
           
            //判断userIdAndName是否null值
            if("null".equals(userIdAndName))
            {
                userIdAndName="";
            }
           
            // 科室信息实体
            GFSDeptsEntity deptsEntity=new GFSDeptsEntity();
           
            // 给科室信息实体赋值
            deptsEntity.setDepartment_id(departmentId);
            deptsEntity.setDepartment_name(departmentName);
           
            // DeptResInstalBO对象
            DeptResInstalBO deptResInstalBO=new DeptResInstalBO();
           
            // 科室信息实体赋给DeptResInstalBO对象
            deptResInstalBO.setDeptsEntity(deptsEntity);
           
            // 姓名和id的组合字符串赋给DeptResInstalBO对象
            deptResInstalBO.setUserIdAndName(userIdAndName);
           
            // 赋给objectBOList集合,返回数据给页面显示
            objectBOList.add(deptResInstalBO);
           
        }
       
        return objectBOList;

分享到:
评论

相关推荐

    泛型dao 泛型dao 泛型dao

    Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...

    dao3.5数据库安装文件

    DAO(Data Access Objects)是微软在早期开发的一种用于访问数据库的应用程序编程接口(API),它在Visual Basic 6和早期的Microsoft Office版本中被广泛使用。DAO 3.5是该技术的一个特定版本,适用于32位操作系统。...

    dao3.5数据库+引擎.zip

    DAO(Data Access Objects)是微软在早期开发的一种数据访问接口,主要用于访问Microsoft Jet数据库引擎,如Access数据库。DAO 3.5是DAO的一个版本,它在Windows操作系统中广泛使用,尤其是在16位和32位应用程序中。...

    Dao Jet数据库引擎

    DAO Jet数据库引擎是微软在早期开发的用于访问和管理Access数据库的一种组件,它与Jet数据库引擎密切相关。Jet引擎是Microsoft Windows操作系统中一个内置的数据库管理系统,主要用于支持Access数据库和其他使用Jet...

    系统配置文件 dao350和dao360

    标题中的“系统配置文件 dao350和dao360”指的是Microsoft Office系统中的数据库访问对象(DAO,Database Access Objects)版本350和360。DAO是Microsoft Jet数据库引擎的一部分,主要用于与Access数据库或其他Jet...

    Dao3.5数据库引擎

    DAO(Data Access Objects)是微软在早期开发的一种数据库访问技术,它是Microsoft Jet数据库引擎的一部分,主要用于与Access数据库的交互。DAO3.5是DAO的一个特定版本,它在Windows 95和Windows 98时代非常流行,但...

    dao jet数据库引擎

    DAO(Data Access Objects)是微软在早期开发的一种数据访问接口,主要用于访问Microsoft Jet数据库引擎,它是Access数据库的基础。Jet数据库引擎是微软开发的一种强大的、快速的数据库管理工具,尤其适用于小型到...

    dao包封装包

    DAO(Data Access Object)封装包是软件开发中用于处理数据访问层的一种设计模式。它将数据库操作与业务逻辑分离,使得代码更易于维护和测试。在这个"dao封装包"中,我们通常会找到一系列与数据库交互的接口和实现类...

    dao 1.0 source code

    DAO(Data Access Object)模式是软件开发中常用的设计模式之一,主要用于数据库操作的抽象和封装。DAO 1.0 源代码的提供允许我们深入理解这一模式在实际项目中的应用。下面将详细介绍DAO模式的核心概念、作用以及...

    JSP的DAO模式留言板

    **JSP的DAO模式留言板详解** 在Web开发中,DAO(Data Access Object)模式是一种常见的设计模式,用于封装对数据库的操作,将业务逻辑与数据访问层分离,提高代码的可维护性和可测试性。本教程将详细介绍如何使用...

    C#特性标签实现通用Dao层

    在C#编程中,"通用Dao层"是一个常见的设计模式,用于封装数据库操作,使得业务逻辑层能够专注于处理业务规则,而无需关心底层数据访问的细节。本篇将重点探讨如何利用C#的特性(Attribute)标签来实现这一目标,同时...

    DAO详解 详细讲述了DAO的使用

    **DAO详解** DAO(Data Access Object)模式是软件设计中的一种模式,主要用于数据库访问层的抽象,它将数据操作逻辑封装在对象中,使得业务逻辑层与数据存储层解耦,提高了代码的可复用性和可维护性。本文将深入...

    用DAO实现的用户登录系统

    DAO(Data Access Object)模式是一种常见的软件设计模式,它用于封装对数据库的访问操作,将数据访问层与业务逻辑层分离,从而提高系统的可维护性和可扩展性。在这个"用DAO实现的用户登录系统"中,我们可以看到以下...

    .net 自动生成实体类、DAO工具

    在.NET开发环境中,自动生成实体类和DAO(Data Access Object)是提高开发效率的重要手段,尤其是在处理大量数据库交互时。这个".net 自动生成实体类、DAO工具"是一个实用的小型工具,能够帮助开发者快速构建数据...

    java 基于泛型与反射的通用 DAO

    本文将深入探讨如何结合这两种技术实现一个通用的DAO(Data Access Object)设计模式。 首先,我们来看“泛型”。泛型是Java 5引入的新特性,它允许在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和...

    基于DAO设计模式的新闻发布系统

    DAO(Data Access Object)设计模式是一种在软件工程中用于封装对数据库访问的模式,它将业务逻辑和数据访问逻辑分离,提高代码的可重用性和可测试性。在这个基于DAO设计模式的新闻发布系统中,我们可以深入探讨以下...

    DAO模式实现增加删除修改操作

    DAO(Data Access Object)模式是软件开发中常用的一种设计模式,主要用于数据库操作的抽象和封装。在Java开发中,DAO模式被广泛应用于处理与数据库的交互,以提高代码的可维护性和可测试性。本篇文章将深入探讨DAO...

    java复习题,jdbc,DAO模式,oracle复习题

    DAO(Data Access Object)模式是一种设计模式,常用于在应用程序和数据库之间提供一个抽象层,以实现数据访问的独立性。Oracle则是一款强大的关系型数据库管理系统,广泛应用于大型企业的核心系统。 首先,我们来...

    DAO设计模式 DAO 设计模式 JAVA设计模式

    DAO(Data Access Object)设计模式是软件开发中一种常见的用于处理数据访问的模式,它将业务逻辑与数据访问逻辑分离,使得代码结构更加清晰,更易于维护和测试。在Java开发中,DAO模式广泛应用于数据库操作,为应用...

Global site tag (gtag.js) - Google Analytics