只要输出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,支持增删查改,并支持多条件分页查询,导入即搞定!妈妈再有不用...
### Java Web应用开发:优化DAO层查询方法 #### 一、背景与目标 在Java Web应用开发中,数据访问对象(Data Access Object, DAO)层是应用架构中的关键部分之一,它负责处理与数据库交互的所有操作。对于一个现有...
MyBatis是一个半自动的持久层框架,它提供了一个中间层来简化数据库操作,特别是对于Java应用程序。MyBatis消除了大部分的JDBC代码和手动的SQL命令编写,允许开发者专注于业务逻辑。 ### MyBatis的主要特点包括: ...
DAO(Data Access Object)设计模式是一种在软件工程中常见的用于处理数据访问的模式,它将业务逻辑与数据访问操作分离,使得系统更加模块化,提高了代码的可复用性和可测试性。在这个“李兴华 DAO设计模式 实现 增...
在这个“一个DAO通用模型”中,我们可以深入探讨DAO模式的基本概念、实现原理以及如何使用连接池来优化数据库操作。 1. DAO模式介绍: DAO模式是一种数据访问层的设计模式,它定义了接口来对数据库或其他持久化存储...
1)dao类的繁多,很多设计都是一个entity对应一个dao (不同的只有类名和方法名) 2)dao接口需要维护的method庞大。 3)业务逻辑改变时,dao需要同时修改两个类文件(接口和实现类) 在本文中,我将为您展示如何...
在Java Web开发中,条件查询是一项关键技能,它允许我们根据特定条件从数据库中检索数据。这个实例包含了一个使用MyEclipse开发的项目,数据库环境是SQL Server。下面将详细探讨Java Web条件查询的实现、相关技术和...
DAO(Data Access Object)模式是软件开发中常用的设计模式之一,主要用于数据库操作的抽象和封装。DAO 1.0 源代码的提供允许我们深入理解这一模式在实际项目中的应用。下面将详细介绍DAO模式的核心概念、作用以及...
当使用Spring + Hibernate (SSH) 的注解开发方式时,开发者在执行增、删、改等非查询类型的数据库操作时,可能会遇到 `org.springframework.dao.InvalidDataAccessApiUsageException` 这一异常。而在执行查询操作时...
1. **DAO设计模式**: DAO模式是软件设计模式的一种,它的核心思想是创建一个独立于具体数据库操作的对象,该对象负责处理与数据库相关的所有事务。这样做的好处在于,当数据库发生变化时,只需要修改DAO层,而不会...
1. **数据库连接**:首先,我们需要创建一个DAO数据库引擎对象,通过它来连接到实际的数据库。这通常涉及到设置数据库路径、打开工作空间以及打开或创建数据表。 2. **DAO对象创建**:然后,为每个数据库对象(如表...
8.DAO数据库表查询操作演示(Visual C++编程 源代8.DAO数据库表查询操作演示(Visual C++编程 源代码)8.DAO数据库表查询操作演示(Visual C++编程 源代码)8.DAO数据库表查询操作演示(Visual C++编程 源代码)8....
DAO接口定义了对数据的操作,而DAO实现类则负责具体的数据库交互,如SQL查询、事务处理等。 **2. DAO模式的角色** - **数据访问接口(DAO Interface)**:定义了对数据源进行操作的方法,例如增删改查。 - **数据...
基于JDBC实现的DAO(Data Access Object)是一种在Java编程中常见的数据访问模式,它用于封装对数据库的操作,使得业务逻辑层与数据访问层解耦,提高了代码的可复用性和可维护性。以下是关于基于JDBC实现DAO的一些...
JavaBean:用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等 jsp: 用于显示、收集数据部分 Servlet:用于验证数据、实例化JavaBean、调用Dao连接数据库、控制页面的跳转 Servlet过滤器(filter):...
标题 "new_dao" 暗示我们关注的是与数据库操作相关的编程概念,可能是关于一个新的数据访问对象(DAO)的设计或实现。由于没有具体的描述,我们将基于标签 "源码" 和 "工具" 进行推测,并结合博客链接进行讨论。 在...
1. **增(Add)**:在DAO层添加新数据通常涉及创建一个对应数据库表的实体类对象,然后调用DAO接口的`add`方法。这个方法会使用JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如...
使用DAO模式,首先需要一个VO类来封装用户信息,然后定义一个DAO接口,实现类中编写查询数据库用户信息的方法,最后通过工厂类获取实现类实例,并在登录页面调用相应的方法来完成验证。 整个DAO模式的设计流程为:...
3. **DAO(Data Access Object)模式**:这是一种设计模式,用于创建一个抽象层,该层处理所有对数据库的访问。在JDBC+DAO模式中,DAO类封装了对数据库的所有操作,使业务逻辑代码与数据访问代码分离,提高了代码的...
DAO(Data Access Object)模式是一种常见的软件设计模式,它的主要目的是为了将业务逻辑与数据访问逻辑分离,提高代码的可重用性和可维护性。在这个实验报告中,学生周媛娣通过Java Web开发实践,使用DAO模式实现了...