gpt4 book ai didi

java - 配置数据源——tomee.xml、persistence.xml

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:43 24 4
gpt4 key购买 nike

我正在用 JPA 项目做一些 EJB,将一些实体映射/持久化到 mysql 数据库。我在 persistence.xml 中定义了持久化单元,如下所示:

  <persistence-unit name="MyAppPU" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>MyAppDS</jta-data-source>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
<property name="openjpa.jdbc.DBDictionary" value="mysql" />
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
</properties>
</persistence-unit>

然后,在 tomee/conf/tomee.xml 文件中,我定义了这样的数据源:

<Resource id="MyAppDS" type="DataSource">
JdbcDriver com.mysql.jdbc.Driver
JdbcUrl jdbc:mysql://127.0.0.1:3306/MyAppDB
UserName root
Password 123
JtaManaged true
DefaultAutoCommit false
</Resource>

一切正常,我创建了 MyApp.jar,将其部署到 TomEE 服务器,对其进行了测试,然后我在数据库中获得了 mysql 表。我的问题是“还有其他地方可以定义数据源资源吗?”或者它必须在 tomee/conf/tomee.xml 文件中?它可以在应用程序结构内部的某个地方定义,在某个 xml 文件中,并在应用程序 jar 文件中部署到服务器吗?

最佳答案

这就是 JNDI 数据源的全部要点,将其外部化到您的应用程序之外,这样您就可以修改它而无需重新编译或重新打包。所以最好还是这样吧。

出于测试目的,一些 EE 服务器如 JBoss (Wildfly) 允许您在项目中定义它。

关于java - 配置数据源——tomee.xml、persistence.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com