0

私は既存のEclipseプロジェクト(JAVAアプリケーション)を持っています.xampp - phpMyAdminでテーブルを作成しました。このプロジェクトでは、すべてのクエリとデータベースを次の 2 つの方法で実装する必要があります。

1) JDBC

2) JPA

Springメカニズムを使用してそれらの1つを選択します。

だから私はいくつかの質問があります:

1) 既存のプロジェクトに JPA を追加する方法は?
Javaプロジェクトにない「META-INF」フォルダーに配置する必要がある「persistence.xml」ファイルが必要であることを読んだためです。

2) JPA を使用して phpMyAdmin でデータベースに接続するにはどうすればよいですか?

3) Spring メカニズムを使用して JDBC と JPA のどちらを選択するか?

4

2 に答える 2

1

質問の一部に答えると、Hibernate を JPA プロバイダーとして使用している場合、次の方法で JPA から JDBC に変更できます。

Session session = em.unwrap(Session.class);
session.doWork(new Work() {

    @Override
    public void execute(Connection connection) throws SQLException {
        Statement stmt = connection.createStatement();
        String nativeSql = "SELECT * FROM USERS"; 
        stmt.executeUpdate(nativeSql);
        stmt.close();
    }
});

質問 1 と 2 への回答: あなたが言ったように、persistence.xml という名前のファイルを次のように作成するだけです。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mydb"/>
            <property name="javax.persistence.jdbc.user" value="user"/>
            <property name="javax.persistence.jdbc.password" value="pass"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
        </properties>
    </persistence-unit>
</persistence>

さて、Spring が JPA と連携する方法については、私には答えられません。しかし、これが役立つことを願っています

于 2012-08-28T12:11:35.013 に答える
0

1)既存のプロジェクトにJPAを追加するにはどうすればよいですか?これは、Javaプロジェクトにない「META-INF」フォルダーに配置する必要がある「persistence.xml」ファイルが必要であることを読んだためです。

手動で追加できます。

サンプル

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
                 version="1.0">
         <persistence-unit name="foo" transaction-type="RESOURCE_LOCAL">
            <class>org.bar.foobar</class>
                // Add required classes here
         </persistence-unit>

        // You can add more persistence unit as per required.
 </persistence>

2)JPAを使用してphpMyAdminのデータベースに接続するにはどうすればよいですか?

phpMyAdminはMySQLを操作するための単なる別のツールであり、ツールではなくデータベースについて気にする必要があります。このリンクをチェックしてください、あなたはこれが役に立つかもしれません

3)Springメカニズムを使用してJDBCとJPAのどちらを選択するか?

JDBCは最下位レベルであり、他のレベルはその上に構築されています。パフォーマンスに関しては、JDBCを好みます。また、特定の列を頻繁に編集したい場合は、JPAよりもJDBCを好みます。

JDBC VS ORM(JPA)

JDBCの利点

  • 小さなプログラムのためにきれいで簡単
  • JDBCは、大量のデータで優れたパフォーマンスを提供します
  • 小さなJDBCプログラムは非常に簡単に開発できます
  • 小さなアプリケーションに非常に適しています

JDBCのデメリット

  • 大規模なプロジェクトで使用する場合、JDBCは簡単ではありません。プログラミングには大きなオーバーヘッドがあります。
  • プログラマーは、アプリケーションでトランザクションと同時実行コードをハードコーディングする必要があります。
  • JDBC接続を処理し、接続を適切に閉じることも大きな問題です。接続を適切に閉じる必要があります。
  • JDBCは大きなアプリケーションには適していません

ORMの利点

  • データを保存および取得するためにSQLクエリを処理する必要はありません
  • シンプルな構成
  • ビジネスオブジェクトを永続化するための標準化されたAPI
  • アプリケーションの迅速な開発
  • 同時実行のサポート
  • アプリケーションのパフォーマンスを向上させるための優れたキャッシングサポート
  • 注入されたトランザクション管理
  • 構成可能なロギング
  • 習得と使用が簡単

ORMのデメリット

  • 大規模なバッチ更新の場合はパフォーマンスが低下します
  • JDBCより少し遅い
于 2012-08-28T13:26:35.720 に答える