JpaRepository关于日期(不带时间)查询注意事项
2016-12-13 21:55
309 查看
在使用JpaRepository(spring data提供的一种数据访问功能)时,可能会遇到通过日期查询对应实体类的方法。
比如:
实体类为:HappyBirthday
MySQL里的字段“happy_date”,类型为date(比如2016-12-22)。
通过实现JpaRepository的方法:
来查询参数等于happyDate的实体。
当输入参数时,时间部分必须全为0,有如下两种方法:
1、使用Date:
Date temp = new Date();
temp.setDate(22);
Date happyDate = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
happyDate = df.parse(df.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
2、第一种方法有点gancient,可以使用第二种方法,如下:
接下来,就使用实现的方法对数据库进行查询:
人生第一篇博客,so intersting!!!
比如:
实体类为:HappyBirthday
MySQL里的字段“happy_date”,类型为date(比如2016-12-22)。
通过实现JpaRepository的方法:
findByHappyDate(Date happyDate);
来查询参数等于happyDate的实体。
当输入参数时,时间部分必须全为0,有如下两种方法:
1、使用Date:
Date temp = new Date();
temp.setDate(22);
Date happyDate = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
happyDate = df.parse(df.format(date));
} catch (ParseException e) {
e.printStackTrace();
}
2、第一种方法有点gancient,可以使用第二种方法,如下:
Calendar cal = Calendar.getInstance(); cal.set(Calendar .DAY_OF_MONTH, 22); cal.set(Calendar .HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); //关键的一步,很多时候忽略了毫秒置0,而无法查询出想要的结果 Date happyDate = c.getTime();
接下来,就使用实现的方法对数据库进行查询:
List<HappyBirthday> hb = findByHappyDate(Date happyDate);
人生第一篇博客,so intersting!!!
相关文章推荐
- 微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务
- springmvc实现url路由功能
- spring aop 无法代理父类方法 的解决方法
- Spring MVC过滤器-超类 GenericFilterBean
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- 我是运营,我没有假期
- 使用MVC微信支付返回get_brand_wcpay_request:fail
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- 浅析SQL数据操作语句