0

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

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

但我无法在以下情况下这样做:

我创建了如下查询:

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 避免这种多重查询声明吗?

4

1 回答 1

1

从中创建一个并将java.sql.DateString传递给查询;不要将转换嵌入数据库中。

更好的是,在它到达持久层之前将它绑定String到很长时间。DateJava 是一种面向对象的语言;从对象的角度思考。

于 2012-10-29T13:53:43.557 回答