sql >> データベース >  >> RDS >> Mysql

JDBC VS Hibernate

    上記の問題への回答:

    1。 Hibernateは「既存の」データベースに接続できません。常に独自のものを作成しようとします。

    これは間違っています。 Hibernateはできます 既存のデータベースに接続しますが、常にデータベースを再作成しようとはしません。 hbm2ddl. auto

    2。私たちのデータベースは、異なるプラットフォーム(クラウド、サーバー、VPS、パーソナルコンピューター)にある同じアプリケーションからアクセスする可能性があります。 Hibernateは、この状況でのキャッシュのために問題を引き起こす可能性があります。

    Hibernateには調整可能なキャッシュがあるため、これも問題にはなりません。

    3。 Javaコードに「テーブル作成作業」を与えるのは好きではありません。常に手動でテーブルを作成します。

    問題ない。上記のp.1を参照してください。さらに、間接的なテーブルの作成と更新のための便利なライブラリがいくつかあります(例: liquibase )休止状態と完全に組み合わせて使用​​できます。

    4。非常に長く複雑なSQLステートメントを使用しなければならない場合があります。前回は、150行を超えるステートメントを使用し、20を超えるテーブルを結合しました。 Hibernateに関しては、これで問題が発生するかどうかは疑問です。

    必要に応じて、いつでも直接JDBC呼び出しを使用し、Hibernateを介してネイティブSQLクエリを呼び出すことができます。

    5。私たちのSQLコードは素晴らしく標準的です。 Hibernateで生成されたコードは私たちにとって少し汚いようです。

    繰り返しますが、自動生成された休止状態ではなく、ロジックが複雑なSQLコードを呼び出す必要がある場合は、それを行うことができます。

    6。私たちは常にMySQLを使用しています。他のDBは絶対に使用しないでください。

    全く問題ありません。 Hibernateには特別なMySQL方言サポートがあります:org.hibernate.dialect.MySQLDialect

    7。私たちが作成するアプリケーションには、医療に関連する最大限のセキュリティが必要です。少なくとも1つのデータレコードが漏洩した場合は、完了です。

    セキュリティの問題は、ORM技術とは関係ありません。 Hibernate 純粋なデータベースJDBC呼び出しとプログラマーツールの間の論理的で便利なオブジェクト指向レイヤーです。一般的なネットセキュリティには何の影響もありません。



    1. 1つのクエリで複数のテーブルに挿入

    2. MySQLの値を期限切れにする方法は?

    3. MySQLのADDDATE()とDATE_ADD():違いは何ですか?

    4. RPostgreSQLを使用した特定のスキーマへの書き込み