7

私はかなり単純な DB コードを書く必要があり、プレーンな JDBC よりも MyBatis を検討しています (完全な ORM はやり過ぎだと思います)。

MyBatis とプレーンな JDBC の両方で次のことを考えると、次のようになります。

  1. 手書きの SQL ステートメント。
  2. DB 行を Java DTO オブジェクトに (コードまたは構成を介して) 手動で接続します。

私が知っている JDBC に対する MyBatis の利点は次のとおりです。

  1. すぐに使用できるテーブル/クエリ キャッシング。
  2. 動的 SQL。
  3. SQL はコードの外に格納されます。
  4. DB ベンダーの独立性を容易にするための SQL のテンプレート化。

他に考慮すべき MyBatis-Over-JDBC の利点は何ですか?

4

3 に答える 3

3

これを利点として数えるかどうかはわかりませんが、MyBatisGeneratorがあり、必要なすべての基本クエリに加えて、いくつかの高度なクエリとDTOオブジェクトが単一のXMLファイルに基づいて自動的に生成されます。

さらに、同じようにEclipseプラグインがあります。

于 2012-06-09T08:58:58.470 に答える
2

About : 「DB 行を Java DTO オブジェクトに手動で配線する (コードまたは構成を介して)」。これは完全に正しいわけではありません。規則を使用すると、DB テーブルから Java クラスへの自動マッピングを取得できます。たとえば、ID、COMPANY_NAME、PHONE_NUMBER などのフィールドを持つ CUSTOMER テーブルと、プロパティ id、companyName、およびプロパティを持つ Java クラス Customer があります。 phoneNumber の場合、MyBatis は DB からキャメル ケースへの規則を理解するのに十分スマートであり、ユーザーによるマッピングは必要ありません。すごい!

  • MyBatis は必要なコードが少なく、プレーンな JDBC コーディングよりもクリーンです
  • MyBatis は名前付きパラメーターをサポートしていますが、JDBC はプレースホルダーのみをサポートしていますか? (うーん!)
  • 1 行で、Reuse Prepared Statement モードから Bath モードに変更できます。プレーンな JDBC では、コードを書き直す必要があります。
于 2014-05-26T02:28:55.600 に答える
2

ほとんどの場合、明示的な列を pojo にマップする必要はないため、箇条書き 2 は類似点ではなく相違点です。

私見の主な違いは、JDBC よりも MyBatis の方がはるかに単純な API です。Spring または Guice で使用する場合、コードで MyBatis API を呼び出す必要はまったくありません。

マッパーとインジェクションはテストに大いに役立ちます。マッパーは単純なインターフェースなので簡単にモックできるからです。

于 2012-06-23T15:19:12.627 に答える