at least one user library must be selected實際就是建立一個目錄,匯入三個包即可
①、 eclipselink.jar
②、javax.persistence.source_2.1.0.v201304241213.jar
③、javax.persistence_2.1.0.v201304241213.jar
(註:本系列筆記是在學習尚矽谷JPA課程的時候寫下的,結合課程內容和自我理解,方便自己以後進行複習)
一、在建立JPA之前看看什麼是JPA
1、Java Persistence API:用於對象持久化的 API
2、Java EE 5.0 平台標準的 ORM 規範,使得應用程式以統一的方式訪問持久層
3、結合下面兩幅圖片進行理解:
JPA功能示意圖:
Figure 1.1
JDBC功能示意圖:
Figure 1.2
4、JPA和Hibernate的關係
JPA 是 hibernate 的一個抽象(就像JDBC和JDBC驅動的關係):
——JPA 是規範: JPA 本質上就是一種 ORM 規範,不是ORM 架構 —— 因為 JPA 並未提供 ORM 實現,它只是制訂了一些規範,提供了一些編程的 API 介面,但具體實現則由 ORM 廠商提供實現
——Hibernate 是實現: Hibernate 除了作為 ORM 架構之外,它也是一種 JPA 實現
從功能上來說, JPA 是 Hibernate 功能的一個子集
二、建立JPA工程之前需要解決一個問題:at least one user library must be selected
問題描述:在Workspace中右鍵,new → JPA Project,選擇JAP version為2.0。此時,嚮導中的Finish是灰色的,不能夠點擊完成。沒辦法,只好點擊Next看看,一路Next下去看到如下圖Figure 2.1所示這樣一個問題:at least one user library must be selected。
Figure 2.1
沒有辦法建立JAP工程,只好網上搜尋,找到一篇歪果仁寫的一篇博文,很好的解決了我這個問題:
http://www.javabeat.net/eclipselink-jpa-installation-configuration/
下面將博文要點整理成如下中文:
這篇文章將向你介紹如何安裝和使用EclipseLink-JPA:
1、安裝EclipseLink JAR 檔案 從 https://www.eclipse.org/eclipselink/downloads/ 處下載 EclipseLink 2.5.2 Installer Zip (38 MB) 資源(也可以選擇其它版本)。EclipseLink中提供了所有持久化服務的的實現。 持久化服務將會用到下面三個jar包:()
①、 eclipselink.jar
②、javax.persistence.source_2.1.0.v201304241213.jar
③、javax.persistence_2.1.0.v201304241213.jar 將下載好的EclipseLink 2.5.2壓縮包解壓到任何你想用於完成安裝的檔案夾中。我將檔案解壓到 “.\workspace\libraries\EclipseLink 2.5.2” 檔案夾下。
2、在Eclipse IDE中設定 JPA Facet
首先在Eclipse中建立一個動態web工程,為我們後續添加 JPA facet 作準備。步驟如下:
①、開啟 Eclipse IDE
②、建立一個動態Web工程
③、在剛剛建立好的工程上點擊右鍵,選擇properties
④、在左側那一列中點擊 “Project Facets”
⑤、然後在右側選中 JPA 選項,同時選擇 JPA version 為2.0。如下圖Figure 2.2所示:
Figure 2.2
這裡有一個要注意的,因為有後續的很多設定要完成,所以在選擇JPA和Version以後不能直接點擊OK,而是要點擊上圖中下面部分標註的“Further configuration ...”連結來進行後續配置。這個操作將會開啟一個新的對話方塊用於配置JPA Facet。
3、添加 JPA Facet
新彈開的對話方塊如下圖Figure 2.3所示。使用者可以在這個對話方塊中添加必須的庫來實現JPA。
Figure 2.3
①、對話方塊上端的platform預設情況下是“Generic 2.0”,我們可以依據我們自己下載的EclipseLink版本來進行修改。我下載的是2.5.2版本,所以如Figure 2.3所示選擇platform為EclipseLink 2.4.x/2.5.x版本
②、JPA implementation菜單不需要做任何修改。“User Library” type將會允許使用者添加JPA庫
③、點擊右側的“Manager Libraries”。除此之外,另外一個實現方法就是點擊“Download Library”來進行下載庫,但是這裡下載實在是太慢,所以不使用它。
④、點擊“Manager Libraries”以後會彈出一個對話方塊,在新的對話方塊中點擊“New”。
⑤、“New”以後又會彈出一個對話方塊,要我們填寫庫的名字,我填寫為“EclipseLink 2.5.2”。點擊OK。
到目前為止,我們已經做好了添加jar包的前期準備。接下來就是添加上面“1、安裝EclipseLink JAR 檔案”這一步中提到的那三個jar包了。到目前的效果圖如下Figure 2.4:
Figure 2.4
4、配置Library
配置Library需要我們添加JPA實現所必須的jar包。按照下面的步驟來完成配置:
①、點擊“Add External JARs...”(也就是Figure 2.4圖中紅色框中的按鈕)
②、添加 eclipselink.jar,它位於“.\workspace\libraries\EclipseLink 2.5.2\jlib”檔案夾下面
③、添加 “.\workspace\libraries\EclipseLink 2.5.2\jlib\jpa”檔案夾下 javax.persistence.* 開頭的jar包(也就是前面說的後兩個jar包)。如Figure 2.5所示
Figure 2.5
④、點擊下端的OK按鈕,會關閉添加library的對話方塊。
⑤、但是,為了避免JPA Facet報“At least one user library must be selected”這個錯誤。我們選擇剛剛產生的library
⑥、點擊OK。
到現在為止,前面提到的At least one user library must be selected錯誤已經得到瞭解決。到這裡我們再回頭去建立一個JPA工程就沒有什麼問題了。但是,歪果仁的這篇文章的目的是為了在動態Web工程中建立一個JPA環境。
這個是很有必要的,想想也是,現在單純為了學習建了一個JPA工程,以後做Web工程的時候就需要建立一個動態Web工程了。
而且,後面的兩個步驟還是挺有意思的,所以,這裡是插敘,下面繼續翻譯歪果仁的文章。
到現在為止我們建立的動態web工程已經能夠使用JPA了。但是,JPA是一個和關係型資料庫相聯絡的持久化服務。所以,接下來我們就需要建立一個資料庫連接
5、建立資料庫連結(新意在於可以在配置的同時完成連結的測試工作)
一旦你建立完成了一個user library,接下來的工作就是建立一個資料庫連接。最後一個對話方塊應該如Figure 2.6所示:
Figure 2.6
為了建立資料庫的連結,按照以下步驟進行:
①、點擊“Add Connection...”超連結(Figure 2.6中有標註)
②、Connection Profile 對話方塊將會彈出
③、選擇工程中在對話方塊中選擇工程使用的資料庫種類。本教程中假設你使用的是MySQL資料庫。
④、修改連結的名字,點擊Next
⑤、填寫“Specify a Driver and Connection Details”表單。在最初的時候可能彈出的對話方塊中沒有驅動可以選擇,這個時候我們需要手動的添加相關驅動,步驟如Figure 2.7和Figure2.8所示:
Figure 2.7
Figure2.8
點擊上面的Figure 2.8中的OK以後,新的driver就添加完成了。隨後就是在Figure 2.9中修改資料庫名,填寫使用者名稱和密碼,然後點擊“Test Connection”測試資料庫連接是否成功:
Figure 2.9
有意思的是,測試通過會彈出一個 ping successed! 提示框,如Figure 2.10所示:
Figure 2.10
⑥、在第⑤步的末尾,我們已經為JPA工程準備好了資料庫連接
⑦、點擊Figure 2.9中的finish按鈕
⑧、點擊finish以後對話方塊將會關閉,所以要確定串連已經被選中
⑨、點擊,OK關閉Further configuration dialog。繼續點擊OK關閉project facets
現在,你已經建立完成了一個新的動態web工程,同時為它配置好了JPA環境。在eclipse左側的導覽列裡面你可以在src下看見一個META-INF檔案夾了,該檔案夾下面有一個persistence.xml檔案。
6、配置persistence.xml檔案
如果你按照步驟進行到這裡了,而且所有步驟都成功操作了。現在是時候“編輯”persistence.xml檔案的時候了,這個檔案將會協助我們串連我們的資料庫。
為了配置persistence.xml檔案,你需要雙擊開啟它。它會在單獨的一個xml檔案編輯器中開啟,在這個編輯器的底端會有很多的標籤。現在我們按照以下的步驟完成persistence.xml檔案的配置工作:
①、導航到Connection標籤