默認情況下,當應用程序未部署到完整Java EE應用程序服務器時,JPA應用程序的數據庫連接在META-INF/persistence.xml中配置。在我看來,將這種特定於環境的配置放置在.war文件內的文件中並不是很優雅。如何將基於Servlet的JPA應用程序的數據庫連接配置得更加靈活(= .war文件之外)?如何在基於Servlet的JPA應用程序中配置數據庫連接
1
A
回答
2
你不要放置環境的具體的東西在persistence.xml。 有間接 1)在你的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_2_0.xsd"
version="2.0">
<persistence-unit name="sample">
<jta-data-source>java:comp/env/jdbc/DefaultDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="..."/>
<property name="hibernate.hbm2ddl.auto" value="..."/>
</properties>
</persistence-unit>
</persistence>
讓我們假設你正在使用Tomcat,那麼就需要定義Tomcat中的數據源,這是你的地方實際的數據源配置將發生。
2)在你的context.xml把下面的代碼...
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/DefaultDS" auth="Container"
type="javax.sql.DataSource" username="wally" password="wally"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost;DatabaseName=mytest;SelectMethod=cursor;"
maxActive="8"
/>
</Context>
0
將JNDI查找名稱放入persistence.xml中,而不是原始連接參數。這將實際連接信息外部化,因此您可以將它設置在應用程序服務器中,它屬於哪個位置。
另一種方法可能是將連接參數放入數據庫中。
0
1
在Servlet容器,還數據源和非JTA(RESOURCE_LOCAL
)persistence.xml
使用。聲明你的數據源中non-jta-data-source
元素:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="myPU" transaction-type="RESOURCE_LOCAL">
<non-jta-data-source>java:comp/env/ds/OracleDS</non-jta-data-source>
<properties/>
</persistence-unit>
相關問題
- 1. 數據庫連接在應用程序配置中的作用
- 2. 基於SubSonic的應用程序,連接到多個數據庫
- 3. 如何在Silverlight應用程序中連接數據庫
- 4. 如何在Silverlight應用程序中建立數據庫連接?
- 5. 如何在openshift應用程序中連接數據庫
- 6. 在Java Servlet中的數據庫連接
- 7. 使用基於java的配置在基於spring的應用程序中從數據庫加載應用程序配置屬性
- 8. 如何連接Derby數據庫與Servlet?
- 9. 應用程序連接到數據庫
- 10. 如何在Java應用程序中設置SQL數據庫連接?
- 11. 如何在Play應用程序中使用JPA配置HikariCP
- 12. 跨數據庫連接JPA
- 13. 如何從ASP.Net應用程序遠程連接oracle數據庫
- 14. 如何從iPhone應用程序連接到遠程數據庫?
- 15. 如何使用應用程序用戶連接到數據庫?
- 16. 如何使用python將應用程序連接到數據庫?
- 17. 如何將基於xBase的ERP連接到Web應用程序?
- 18. 如何將Firebase連接到基於C#的Windows應用程序
- 19. 如何使用Java連接到基於Web的Oracle數據庫?
- 20. 關於將Web數據庫與Android應用程序連接
- 21. 如何在node.js中訪問整個應用程序中的數據庫連接?
- 22. CakePHP - 基於URL的數據庫配置
- 23. 在基於Window的應用程序中連接插座Objective-C
- 24. Laravel應用程序不會更新數據庫連接設置
- 25. 如何將數據庫連接到彈簧應用程序?
- 26. 應用程序如何連接到SQL Server數據庫?
- 27. 如何將Android應用程序連接到RoR數據庫
- 28. 如何將數據庫連接到移動應用程序?
- 29. 如何將scala play應用程序連接到postgres數據庫
- 30. 如何從Web應用程序外部連接到數據庫?