spring的hibernate查询日期的语句

问题描述

select to_date('2011-11-28','yyyy-mm-dd')-to_date('2011-11-01','yyyy-mm-dd') from dual这句sql语句是从oracle数据库中查询两个日期之间的天数,这句在oracle中运行正常,返回一个整数。可是放在dao持久层查询时不能运行。会说找不到dual,可是应该怎样写sql语句呢。public int findBeginEndNum(String begintime,String endtime) { try{String sql="select to_date('"+endtime+"','yyyy-mm-dd')-to_date('"+begintime+"','yyyy-mm-dd') from dual"; System.out.println(sql); this.getHibernateTemplate().find(sql); 【运行到这里就报错】 //Object obj=this.getHibernateTemplate().find(sql).get(0); //if(obj!=null){ // return Integer.parseInt(obj.toString()); //} }catch(Exception e){ e.printStackTrace(); } return 0;}

解决方案

这是以前做过的 你参考下。1.新建类 Dual package mypath; public class Dual implements Serializable{ private Long id; public Long getId() { return this.id; } public void setId(Long id) { this.id=id; }}2.建立映射文件 dual.hbm.xml <?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="mypath.Dual" table="DUAL"> <id name="id" type="java.lang.Long" column="ID"> <generator class="sequence"> <!--可以替换--> <param name="sequence"></param> </generator> </id> </class></hibernate-mapping>3.注意事项 用 select sysdate from Dual; 返回的数据类型为java.sql.Date; 精度只到天 可以用 select to_char(sysdate,'yyyy-MM-dd hh:mm:ss') from Dual;解决
解决方案二:
java代码实现!(因为你都知道两个日期了 为什么还要去数据库跑一次呢!)public int findBeginEndNum(String [color=red]begintime[/color],String endtime)
解决方案三:
你的hibernate orm 映射配置文件里面没有 dual的相关相信 再说dual表这个表是虚拟的表,有些系统变量放在里面,没有结构....

时间: 2024-09-12 04:05:29

spring的hibernate查询日期的语句的相关文章

hibernate 查询语句统一配置管理

你以前所参与的项目里面,SQL.HQL,是否满天飞呢?在逻辑层,显示层那里都可以看到随手写的查询语句?这样的做法极度的破坏了分层的架构,无论如何的XP也应该遵循一定的管理与规范,那么统一管理查询语句的重要性就凸现了.       统一管理查询语句有何优点?       1.保持系统的分层架构,管理语句是持久层的责任,由它自己管理是最适合不过.松散的耦合总是我们向往的目标.       2.统一管理方便修改,可以减小人手修改带来的低级错误.             OK,接下来要考虑如何管理这些语

spring-新手关于Spring管理Hibernate下查询性能的疑问

问题描述 新手关于Spring管理Hibernate下查询性能的疑问 我这么两段代码: 1.Query query = Dao.createQuery("from table"); list = query.list(); for(Table item : list){ Query query2 = Dao2.createQuery("select id from table2"); list = query2.list(); } 2.Query query = D

Java Hibernate中使用HQL语句进行数据库查询的要点解析_java

一.实体对象查询 实体对象查询是hql查询的基础,作为一种对象查询语言,在查询操作时和sql不同,查询字符串中的内容要使用类名和类的属性名来代替.这种查询方法相对简单,只要有SQL功底,使用hql是很简单的,但是有一些问题需要注意,就是查询获取数据不是目的,需要考虑的是如何编写出高效的查询语句,这才是讨论的重点. 1.N+1问题 (1)什么是N+1问题在刚听到这个名词时疑惑可能是有的,以前根本就没有听过N+1问题,那么它是指什么呢?N+1指的是一张表中有N条数据,那么在获取这N条数据时会产生N+

设计-关于hibernate查询的和开发中的一些疑问

问题描述 关于hibernate查询的和开发中的一些疑问 我在开发的过程中遇到一些疑问,希望各大牛帮我解答下. 环境介绍: 假设现在有2个表 表名:category(文章分类) 字段: id 主键 name 文章分类中文名 desc 描述 表名:article(文章列表) 字段: id 主键 categoryid 分类id title 文章标题 content 内容 因为用的是hibernate, 上面两个表对应的PO分别是CategoryPO , ArticlePO.没有配置外键映射. 现在要

将Spring和Hibernate与WebSphere Application Server一起使用

如果您考虑将 Spring 或 Hibernate 与 IBM WebSphere Application Server 一起使用,则本文将向您阐述如何为各种 WebSphere Application Server 场景配置这些框架.本文不是对任一框架的详尽评论,而 是帮助您成功实现此类场景的重要参考.(针对 Spring Framework 2.5 和 WebSphere Application Server V7 进行了更新.) 引言 Spring Framework(通常称为 Sprin

关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明

关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明 作者:yanekemail:yanek@126.com 一.实现目标: 通过使用spring和hibernate,实现用户的添加功能.把用户信息加入到数据库中使用Spring 的hibernate模板实现DAO操作. 最终效果: 浏览器中输入 http://localhost:8083/hibernateTestWeb/user.do 数据库就增加一条记录. 二.分层结构 系统采用如下分层结构 1.WEB层:用

Spring 与 Hibernate 的延迟加载和 Dao 模式

Hibernate 与延迟加载: Hibernate 对象关系映射提供延迟的与非延迟的对象初始化.非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来.这有时会导致成百的(如果不是成千的话) select 语句在读取对象的时候执行.这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了.当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在 ORM 工具中获得的便利. 一个明显的解决方

一个hibernate查询oracle 8i 的问题

问题描述 一个hibernate查询oracle8i的问题:在dao中用sql查询某个日期(包含分.秒),sql如:selectid,record_datefromreftableoracle8i的retable表为:(idvarchar2(30);record_datedate).表数据为:('ref123','2010-02-2010:20:36')现在的问题是:用SqlQuery查询上面的sql后的结果中,record_date值只有年月日,没有分秒,怎样写sql才能查询出record_d

struts2+Hibernate查询速度为何那么慢

问题描述 struts2+hibernate整合,将hibernate查询出List对象在jsp页面使用struts2的<s:iterator>标签显示,为何加载速度是那么的慢啊? 谢谢啦!! 问题补充:luo_yong_men 写道 解决方案 一层一层的测,数据层.业务层.表现层分开测,另外struts2的迭代标签效率确实很低下,这个我测过的,jstl的c标签效率比它效率高不少.解决方案二:你说的这个慢 不能这样说 是hibernate慢 应为 你已经是整个过程了你直接在 dao层 对查询前