簡體   English   中英

圍繞JDBC資源和JDBC連接池Glassfish的一些混淆

[英]Some confusion surrounding JDBC Resources and JDBC Connection pools Glassfish

我即將建立與我的數據庫的連接,我正在使用EJB和JPA。 我最近開始做這些技術所以我有一些問題在這一點上理解這一切:)我知道為了使用JPA需要persistence.xml。 我知道,這是我配置如何連接數據庫的文件。 然而,似乎有多種方法可以做到這一點。

在persistence.xml文件和Glassfish中定義屬性(如用戶名,數據庫,密碼等)會有什么不同(或者我應該何時使用另一種替代方法?)? 優點/缺點,如果有的話。

在我發布的圖像下面,我有JDBC資源和JDBC連接池。 我對這兩個術語感到困惑。 為什么我們不在JDBC Resources中添加用戶名,數據庫,密碼等屬性? 有人可以解釋他們之間的區別和他們的意思嗎?

JDBC資源

JDBC資源(數據源)為應用程序提供了連接數據庫的方法。 通常,管理員為域中部署的應用程序訪問的每個數據庫創建JDBC資源。 (但是,可以為數據庫創建多個JDBC資源。) http://download.oracle.com/docs/cd/E19316-01/820-4335/ablih/index.html

我覺得很奇怪,我們在池中添加了這些屬性,但沒有在資源中添加,但我可能會誤解這些概念。

在此輸入圖像描述

在“JDBC連接池”中,您可以創建容器管理的JDBC數據源(具有連接池功能)。 數據源至少需要知道JDBC驅動程序,JDBC URL,用戶名和密碼。

在“JDBC資源”中,您可以將這些容器管理的JDBC數據源綁定到一個或多個JNDI名稱,以便它們可以通過JNDI對已部署的Web應用程序使用。

persistence.xml您可以指定是使用本地數據源還是使用容器管理的數據源。 如果要使用容器托管數據源,則應指定其JNDI名稱。 使用容器托管數據源的優點是,您可以在多個Web應用程序之間共享單個數據源。 在JPA的情況下,它還具有以下優點:您可以使用JTA(容器管理的事務),這樣您就不需要在每個方法中調用transaction.begin()commit()rollback()等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM