用MyEclipse JPA建立項目(三)

MyEclipse 3.15 Style——在線購買低至75折!火爆開搶>>數據庫

MyEclipse最新版下載安全

本教程介紹了MyEclipse中的一些基於PA的功能。 閱讀本教程時,瞭解JPA和實體映射如何與註釋一塊兒工做的基本概念將會頗有幫助。 在本教程中,您將學習如何:eclipse

  • 爲JPA設置一個項目
  • 鏈接到數據庫
  • 反向設計一個數據庫表來生成實體
  • 實現建立、檢索、編輯和刪除功能

持續時間:30分鐘ide

沒有MyEclipse? 如今下載學習

4、編寫應用程序

因爲MyEclipse生成了大量的代碼,所以您能夠快速專一於編寫「業務邏輯」,或者更具體地說,「實際執行的代碼」。在本節中,您將編寫一個帶有main方法的Java類,該方法將Productline插入到數據庫中,檢索並更新它,而後刪除。使用這段代碼,您應該可以看到在本身的應用程序中使用JPA實體是多麼容易,而無需編寫JDBC代碼或任何其餘持久性代碼。spa

4.1 建立一個類

1. 右鍵單擊com.myeclipseide.jpa包,而後選擇New>Class。設計

2. 在Name字段中輸入RunJPA,選擇Public static void main複選框,而後單擊Finish。orm

生成的類對象

在生成新的類和main方法後,您須要編寫代碼來成功處理Productline的實例。blog

注意:下面的代碼看起來很長很複雜,但這是由於咱們試圖在一個代碼塊中顯示四個不一樣的示例。 若是您查看每一個操做(保存,加載,更新,刪除),它們都不會包含多行代碼。

3. 將如下代碼添加到main方法中,而後按Ctrl + S進行保存。

/* 1. Create a reference to our ID */ 
             String productLineID = "Men's Shoes"; 

 /* 2. Create a new Productline instance */  
             Productline newProductline = new Productline( 
                     productLineID, 
                     "Shoes for men.",  "Men's Shoes", null); 

 /* 3. Create a DAO instance to use */  
             ProductlineDAO dao = new ProductlineDAO(); 

 /* 4. Store our new product line in the DB  */  
EntityManagerHelper.beginTransaction();
             dao.save(newProductline);
EntityManagerHelper.commit(); 

 /* 5. Now retrieve the new product line,                   using the ID we created */  
             Productline loadedProductline = dao.findById(productLineID); 

 /* 6. Print out the product line information  */  
             System.out.println("*NEW* Product Line               [productLine=" 
                     +               loadedProductline.getProductline() + ",               textDescription=" 
                     +               loadedProductline.getTextdescription() + ", image=" 
                     +               loadedProductline.getImage() + "]"); 

 /*        * 7. Now let's change  same value on the product line, and save the 
     * change 
 */  
loadedProductline.setTextdescription("Product line for men's shoes.");
EntityManagerHelper.beginTransaction();
             dao.save(loadedProductline);
EntityManagerHelper.commit();

 /* 
   * 8. Now let's load the product line from the DB again, and make sure 
   * it text description changed 
  */  
             Productline secondLoadedProductline =               dao.findById(productLineID);                System.out.println("*REVISED* Product Line [" 
                 + "productLine=" +               secondLoadedProductline.getProductline() 
                 + ", textDescription=" +               secondLoadedProductline.getTextdescription() 
                 + ", image=" +               secondLoadedProductline.getImage() + "]"); 

 /* 9. Now let's delete the product line from the DB */  
EntityManagerHelper.beginTransaction();
             dao.delete(secondLoadedProductline);
EntityManagerHelper.commit();

 /*       * 10. To confirm the deletion, try and load it again and make sure it 
    * fails 
 */  
             Productline deletedProductline = dao.findById(productLineID); 

 /* 
     * We use a simple inlined IF clause to test for null and print 
     * SUCCESSFUL/FAILED 
 */  
             System.out.println("Productline deletion: " 
                     + (deletedProductline ==               null ? "SUCCESSFUL" : "FAILED"));

注意: 將事務數據庫的代碼片斷換成事務是一個好主意,因此若是操做失敗(例如DB崩潰),那麼試圖在事務中發生的全部更改都會回滾到它們的原始值,而不是隻有一半 工做完成。

上面的代碼看起來使人望而生畏,但它背靠背作了不少簡單的事情。 例如,若是您只想將新項目存儲在數據庫中,則只須要程序中步驟1-3的代碼,這些代碼將三行代碼相減(減去註釋)便可。 如下是每一個編號部分的細目:

  1. PRODUCTLINE表使用產品線的名稱做爲主鍵。 爲了使本教程更容易遵循,咱們在字符串中定義產品線名稱,並在整個代碼中重複使用(建立並存儲產品線,而後再檢索兩次)。 您能夠屢次輕鬆輸入「Men’s Shoes」,咱們認爲這使得教程更易於遵循。
  2. 這將建立一個由MyEclipse生成的Productline POJO的新實例,並將插入到數據庫中。 爲了本教程的目的,這些值並不重要,因此咱們只是使用示例信息。
  3. 這將建立一個要使用的DAO實例。 數據庫訪問須要DAO,這也是由MyEclipse生成的。
  4. 這告訴DAO將新的Productline存儲在數據庫中。 由於你要寫一些東西給數據庫,因此把保存的調用包裝在一個事務中。
  5. 爲了確保Productline正確存儲,使用步驟1中定義的ID,咱們要求DAO獲取Productline,並將結果分配給一個全新的對象,以確保加載的內容來自數據庫。 (咱們能夠將這個值賦給newProductline,可是爲了本教程的目的,咱們但願很是明顯地知道對象來自哪裏以及意外地在代碼中加載的實例不存在以前)。
  6. 這將打印出加載實體的值,以確保它是剛存儲在數據庫中的值。
  7. 這會更改剛剛加載的POJO上的值,以顯示更新記錄的工做方式。 而後使用DAO將更改提交回數據庫。 再次,這個操做被封裝在一個事務中,以確保安全地更改數據庫。
  8. 就像在第5步中同樣,使用步驟1中定義的ID從數據庫從新加載記錄,以確保更新操做有效。 POJO值將被打印出來,以確保新的描述被保存到數據庫中。
  9. 這顯示瞭如何從DB中刪除記錄。 由於這須要對數據庫進行更改,因此此代碼被封裝在事務中。
  10. 與步驟8和步驟5相似,爲了證實刪除起做用,咱們嘗試使用咱們提供的ID從數據庫加載實體。 這個操做應該會失敗,由於咱們已經刪除了Productline。 從DAO得到結果後,將使用嵌入式IF子句打印語句以確保結果爲空。

更多資訊敬請訪問MyEclipse中文網>>

有用(1) 

相關文章
相關標籤/搜索