2

いくつかの異なるデータベース実装で使用するために、JDBC の上に軽量の ORM レイヤーを実装しています。

一般的な SQL エラーを特定するデータベースに依存しない方法はありますか?

(そのような...)

  • 外部キー違反
  • 固有の違反
  • チェック違反
  • デッドロックが検出されました

PostgreSQL を使用するとこれらは で識別できますSQLException#getSQLState()が、これらのエラー コードは MySQL の対応するものと一致しません。

この問題に対する一般的なアプローチが推奨されますが、ドライバー固有の解決策が必要と思われます。

4

2 に答える 2

5

Springがこれを管理します。彼らはあなたのためにそれをより簡単にするために仕事をしました。JDBCパッケージを確認してください。

Springはしばらく前にVMWareによって購入されましたが、フレームワークをオープンソースとして利用できるようにしています。

于 2013-02-07T13:21:02.300 に答える
0

Spring Frameworkのソリューションは、既知のSQLエラーの分類をある程度サポートしていますが、ソリューションは高度に階層化されており、部分的に正しくありません。

カスタム実装の必要性を感じ、軽量のJavaORMcom.jajja.jorm.DialectであるjORMの方言固有の要素を思いつきました。データは、特定のバージョンのSQLエンジンを使用したテストに基づいています。他のバージョンのエンジンはエラーの表現が異なる場合があり、一部のエンジンはまだ調査されていません。

残念ながら、JDBCにはSQLエラー分類のデータベースにとらわれない代替手段がないことに注意してください。

于 2013-03-07T12:30:58.430 に答える