`
sjjpgkl
  • 浏览: 6286 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

DAO条件查询:本周,上周,本月,上月的第一天和最后一天

    博客分类:
  • JAVA
 
阅读更多

只要输出cal.getTime() 都是相对应的时间。

 

            //本周 (thisWeek)
            if(null != qdto.getSearchContent() && qdto.getSearchContent().equals("thisWeek")){
                 Calendar cal = Calendar.getInstance();
                 int day_of_week = cal.get(Calendar.DAY_OF_WEEK) - 2;
                 cal.add(Calendar.DATE, -day_of_week);
                 //本周第一天
                 dc.add(Restrictions.and(Restrictions.ge("draftingTiem",cal.getTime()),
                         Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
                 cal.add(Calendar.DATE, 6);
                 //本周最后一天
                 dc.add(Restrictions.and(Restrictions.le("draftingTiem",cal.getTime()),
                         Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
            }
            //上周 (lastWeek)
            if(null != qdto.getSearchContent() && qdto.getSearchContent().equals("lastWeek")){
                  Calendar cal=Calendar.getInstance();
                  cal.set(Calendar.DAY_OF_WEEK, 1);
                  //上周日
                  dc.add(Restrictions.and(Restrictions.le("draftingTiem",cal.getTime()),
                          Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
                  cal.add(Calendar.WEEK_OF_MONTH, -1);
                  cal.set(Calendar.DAY_OF_WEEK, 2);
                  //上周一
                  dc.add(Restrictions.and(Restrictions.ge("draftingTiem",cal.getTime()),
                          Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
            }
            //本月 (thisMonth)
            if(null !=qdto.getSearchContent() && qdto.getSearchContent().equals("thisMonth")){
                  Calendar cal  =   new  GregorianCalendar();
                  cal.set( Calendar.DATE,  1 );
                  //本月的第一天
                  dc.add(Restrictions.and(Restrictions.ge("draftingTiem",cal.getTime()),
                          Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
                  cal.set( Calendar.DATE,  1 );
                  cal.roll(Calendar.DATE,  - 1 );
                  //本月的最后一天
                  dc.add(Restrictions.and(Restrictions.le("draftingTiem",cal.getTime()),
                          Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
            }
            //上月 (lastMonth)
            if(null != qdto.getSearchContent() && qdto.getSearchContent().equals("lastMonth")){
                   Calendar cal = Calendar.getInstance();
                   cal.set(Calendar.DAY_OF_MONTH, 1);
                   cal.add(Calendar.DAY_OF_MONTH, -1);
                   //上月最后一天
                   dc.add(Restrictions.and(Restrictions.le("draftingTiem",cal.getTime()),
                           Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
                   cal.set( Calendar.DATE,  1 );
                   //上月第一天
                   dc.add(Restrictions.and(Restrictions.ge("draftingTiem",cal.getTime()),
                           Restrictions.or(Restrictions.eq("dataFlag", one), Restrictions.eq("dataFlag", two))));
            }

分享到:
评论

相关推荐

    多条件查询分页的基础Dao层帮助jar包

    操作数据库常用操作就是增删查改,每做一次就写一次这些操作太麻烦,也没必要,特别是写多条件查询并分页时,太痛苦了,所以抽空写了个dao帮助jar,支持增删查改,并支持多条件分页查询,导入即搞定!妈妈再有不用...

    Java Web应用开发:优化dao层查询方法.docx

    ### Java Web应用开发:优化DAO层查询方法 #### 一、背景与目标 在Java Web应用开发中,数据访问对象(Data Access Object, DAO)层是应用架构中的关键部分之一,它负责处理与数据库交互的所有操作。对于一个现有...

    MyBatis的Dao接口重载:深入探究与实践指南

    MyBatis是一个半自动的持久层框架,它提供了一个中间层来简化数据库操作,特别是对于Java应用程序。MyBatis消除了大部分的JDBC代码和手动的SQL命令编写,允许开发者专注于业务逻辑。 ### MyBatis的主要特点包括: ...

    李兴华 DAO设计模式 实现 增删改查 分页查询 完整代码

    DAO(Data Access Object)设计模式是一种在软件工程中常见的用于处理数据访问的模式,它将业务逻辑与数据访问操作分离,使得系统更加模块化,提高了代码的可复用性和可测试性。在这个“李兴华 DAO设计模式 实现 增...

    一个DAO通用模型

    在这个“一个DAO通用模型”中,我们可以深入探讨DAO模式的基本概念、实现原理以及如何使用连接池来优化数据库操作。 1. DAO模式介绍: DAO模式是一种数据访问层的设计模式,它定义了接口来对数据库或其他持久化存储...

    泛型dao 泛型dao 泛型dao

    1)dao类的繁多,很多设计都是一个entity对应一个dao (不同的只有类名和方法名) 2)dao接口需要维护的method庞大。 3)业务逻辑改变时,dao需要同时修改两个类文件(接口和实现类) 在本文中,我将为您展示如何...

    Java Web条件查询实例含源码

    在Java Web开发中,条件查询是一项关键技能,它允许我们根据特定条件从数据库中检索数据。这个实例包含了一个使用MyEclipse开发的项目,数据库环境是SQL Server。下面将详细探讨Java Web条件查询的实现、相关技术和...

    dao 1.0 source code

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

    org.springframework.dao.InvalidDataAccessApiUsageException

    当使用Spring + Hibernate (SSH) 的注解开发方式时,开发者在执行增、删、改等非查询类型的数据库操作时,可能会遇到 `org.springframework.dao.InvalidDataAccessApiUsageException` 这一异常。而在执行查询操作时...

    Hibernate封装dao层

    1. **DAO设计模式**: DAO模式是软件设计模式的一种,它的核心思想是创建一个独立于具体数据库操作的对象,该对象负责处理与数据库相关的所有事务。这样做的好处在于,当数据库发生变化时,只需要修改DAO层,而不会...

    数据库操作-DAO篇.rar_DAO CListCtrl_DAO VC_dao_列表_查询

    1. **数据库连接**:首先,我们需要创建一个DAO数据库引擎对象,通过它来连接到实际的数据库。这通常涉及到设置数据库路径、打开工作空间以及打开或创建数据表。 2. **DAO对象创建**:然后,为每个数据库对象(如表...

    8.DAO数据库表查询操作演示(Visual C++编程 源代码).rar

    8.DAO数据库表查询操作演示(Visual C++编程 源代8.DAO数据库表查询操作演示(Visual C++编程 源代码)8.DAO数据库表查询操作演示(Visual C++编程 源代码)8.DAO数据库表查询操作演示(Visual C++编程 源代码)8....

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

    DAO接口定义了对数据的操作,而DAO实现类则负责具体的数据库交互,如SQL查询、事务处理等。 **2. DAO模式的角色** - **数据访问接口(DAO Interface)**:定义了对数据源进行操作的方法,例如增删改查。 - **数据...

    基于JDBC实现的DAO

    基于JDBC实现的DAO(Data Access Object)是一种在Java编程中常见的数据访问模式,它用于封装对数据库的操作,使得业务逻辑层与数据访问层解耦,提高了代码的可复用性和可维护性。以下是关于基于JDBC实现DAO的一些...

    JavaWeb实现网上商城:JSP+Servlet+Dao

    JavaBean:用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等 jsp: 用于显示、收集数据部分 Servlet:用于验证数据、实例化JavaBean、调用Dao连接数据库、控制页面的跳转 Servlet过滤器(filter):...

    new_dao

    标题 "new_dao" 暗示我们关注的是与数据库操作相关的编程概念,可能是关于一个新的数据访问对象(DAO)的设计或实现。由于没有具体的描述,我们将基于标签 "源码" 和 "工具" 进行推测,并结合博客链接进行讨论。 在...

    dao层增删改查分页查找

    1. **增(Add)**:在DAO层添加新数据通常涉及创建一个对应数据库表的实体类对象,然后调用DAO接口的`add`方法。这个方法会使用JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如...

    JavaEE技术-DAO设计模式

    使用DAO模式,首先需要一个VO类来封装用户信息,然后定义一个DAO接口,实现类中编写查询数据库用户信息的方法,最后通过工厂类获取实现类实例,并在登录页面调用相应的方法来完成验证。 整个DAO模式的设计流程为:...

    jdbc+dao:连接oracle

    3. **DAO(Data Access Object)模式**:这是一种设计模式,用于创建一个抽象层,该层处理所有对数据库的访问。在JDBC+DAO模式中,DAO类封装了对数据库的所有操作,使业务逻辑代码与数据访问代码分离,提高了代码的...

    一个dao模式的实验报告

    DAO(Data Access Object)模式是一种常见的软件设计模式,它的主要目的是为了将业务逻辑与数据访问逻辑分离,提高代码的可重用性和可维护性。在这个实验报告中,学生周媛娣通过Java Web开发实践,使用DAO模式实现了...

Global site tag (gtag.js) - Google Analytics