私は、JSF、PrimeFaces、JPA を使用して動的 Web プロジェクト (Java EE) を開発しており、Tomcat 7 で実行しています。プロジェクトの開発は、http://www.simtay.com/simple-crud-web-application-with-に基づいています。 jsf-2-1-primefaces-3-5-maven-and-jpa/
現在、ソフトウェアの JPA 部分を開発しています。以前、Java SE で (演習として) ちょっとしたことを開発したとき、次のデータベース プロパティを使用していました。
jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=password
しかし今、私は Java EE で JPA を学んでいます。
「Pro JPA 2 Mastering the Java trade Persistance API」という本で、第 3 章の「Packaging It Up」の段落を読むことができます。
Java EE 環境では、Java SE の persistence.xml ファイルに必要な多くのプロパティを省略できます。コード リスト 3-32 では、コード リスト 2-11 の persistence.xml ファイルが、Java EE アプリケーションの一部としてデプロイするために変換されています。接続を作成するための JDBC プロパティの代わりに、エンティティ マネージャがデータ ソース名「jdbc/EmployeeDS」を使用する必要があることを宣言します。データ ソースが、ローカル コンポーネントのネーミング コンテキストではなく、アプリケーションの名前空間で使用できるように定義されている場合は、代わりに「java:app/jdbc/EmployeeDS」というデータ ソース名を使用できます。transaction-type 属性も削除され、持続性ユニットをデフォルトで JTA に設定できるようになりました。アプリケーション サーバーはエンティティ クラスを自動的に検出するため、クラスのリストも削除されています。この例は、理想的な最小 Java EE 構成を表しています。この持続性ユニットを使用するビジネス ロジックはステートレス セッション Bean に実装されるため、persistence.xml ファイルは通常、対応する EJB JAR の META-INF ディレクトリに配置されます。
リスト3-32。Java EE での持続性ユニットの定義
<persistence>
<persistence-unit name="EmployeeService">
<jta-data-source>jdbc/EmployeeDS</jta-data-source>
</persistence-unit>
</persistence>
リスト2-11。persistence.xml ファイルの要素
<persistence>
<persistence-unit name="EmployeeService" transaction-type="RESOURCE_LOCAL">
<class>examples.model.Employee</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527 EmpServDB;create=true"/>
<property name="javax.persistence.jdbc.user" value="APP"/>
<property name="javax.persistence.jdbc.password" value="APP"/>
</properties>
</persistence-unit>
</persistence>
私の質問は次のとおりです。投稿の上部に入力したプロパティを使用して、Java EE 環境で汎用の persistence.xml ファイルを MySQL/JDBC データベースに接続するにはどうすればよいですか?