hibernate HQL查询,支持多个数据库oracle和mysql

时间:2012-10-29 13:51:25

标签: java mysql oracle hibernate

我有一个应该支持oracle和mysql数据库的应用程序。 我会为不同的数据库获得不同的配置。

但我希望代码中使用的所有HSQL都完好无损。

但我无法做到以下bcoz:

我创建了一个如下所示的查询:

String SQL_QUERY = "select count(log) from dbtable where created_date='"+ givenDate
Query query = session.createQuery(SQL_QUERY);
query.uniqueResult();

这在mysql中运行得很好 但不是在oracle

因为oracle db期望使用

格式化created_date列的值
to_date(givenDate,"yyyy-MM-dd")

所以我必须将上述查询更改为:

String SQL_QUERY = "select count(log) from dbtable where created_date=to_date('"+ givenDate+","yyyy-MM-dd")

我可以以任何方式避免对mysql和oracle进行多次查询声明吗?

1 个答案:

答案 0 :(得分:1)

java.sql.Date中创建String并将其传递给查询;不要将转换嵌入数据库中。

更好的是,在String到达持久层之前将Date绑定到{{1}}。 Java是一种面向对象的语言;从对象的角度思考。