我正在使用 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 章“打包”段落中,您可以阅读:
在 Java EE 环境中,可以省略 Java SE 的 persistence.xml 文件中所需的许多属性。在清单 3-32 中,您会看到清单 2-11 中的 persistence.xml 文件已转换为作为 Java EE 应用程序的一部分进行部署。我们现在声明实体管理器应该使用数据源名称“jdbc/EmployeeDS”,而不是用于创建连接的 JDBC 属性。如果数据源被定义为在应用程序命名空间而不是本地组件命名上下文中可用,那么我们可以改为使用数据源名称“java:app/jdbc/EmployeeDS”。还删除了事务类型属性以允许持久性单元默认为 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 数据库?