0

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 で、この複数のクエリ宣言を何らかの方法で回避できますか??

4

1 に答える 1

1

java.sql.Dateそこからを作成Stringし、クエリに渡します。変換をデータベースに埋め込まないでください。

Stringさらに良いことに、永続層に到達するDateずっと前にをバインドします。Java はオブジェクト指向言語です。オブジェクトの観点から考えます。

于 2012-10-29T13:53:43.557 に答える