MyEclipse持續性開發教程:用JPA和Spring管理資料(四)
MyEclipse紅運年貨節 線上購買低至69折!火爆開搶>>
本教程介紹了MyEclipse中的一些基於JPA / Spring的功能。有關設定JPA專案的基礎知識,請先閱讀JPA教程。 本教程主要關注MyEclipse中的JPA-Spring整合以及如何利用這些函式。您將學習到:
- 為JPA和Spring建立一個專案
- 反向設計一個資料庫表來生成實體
- 實現建立,檢索,編輯和刪除功能
- 啟用容器管理的事務
持續時間:30分鐘
沒有MyEclipse? 現在下載
三、寫一個應用程式
3.3 更新實體
現在程式碼的下一部分可能看起來更長,但這是因為會列印出新的值,並確認記錄已在資料庫中更新。
/* 1. Now retrieve the new product line, using the ID we created */
Productline loadedProductline = dao.findById(productlineID);
/*
* 2. Now let's change same value on the product line, and save the
* change
*/
loadedProductline.setTextdescription("Product line for men's shoes.");
TransactionStatus status = txManager .getTransaction(new DefaultTransactionDefinition());
dao.update(loadedProductline);
txManager.commit(status);
/* * 3. Now let's load the product line from the DB again, and make sure
* its text description changed
*/
Productline secondLoadedProductline = dao.findById(productlineID);
System.out.println("*REVISED* Product Line [" + "productLine="
+ secondLoadedProductline.getProductline()
+ ", textDescription="
+ secondLoadedProductline.getTextdescription() + "]");
注意update呼叫是用一個事務封裝的,因為它必須向資料庫寫入一些東西,並且需要防止失敗。
在上面的第3節中,產品線在更新後立即從資料庫載入,並列印出從資料庫返回的值以確認更新。
3.4 刪除一個實體
刪除實體與儲存和更新實體幾乎相同。 工作被封裝在一個交易中,然後DAO被告知要做這項工作。
/* 1. Now retrieve the new product line, using the ID we created */
TransactionStatus status = txManager
.getTransaction(new DefaultTransactionDefinition());
Productline loadedProductline = dao.findById(productlineID);
/* 2. Now let's delete the product line from the DB */
dao.delete(loadedProductline);
txManager.commit(status);
/*
* 3. To confirm the deletion, try and load it again and make sure it
* fails
*/
Productline deletedProductline = dao.findById(productlineID);
/*
* 4. We use a simple inline IF clause to test for null and print
* SUCCESSFUL/FAILED
*/
System.out.println("Productline deletion: "
+ (deletedProductline == null ? "SUCCESSFUL" : "FAILED"));
與上面的updateProductline實現類似,您會注意到事務用於包裝刪除呼叫,然後程式碼嘗試從DB載入實體並確認操作失敗。
注意:事務必須封裝findById和delete方法呼叫的原因是因為由JPA管理的物件必須是同一個事務的一部分。 要刪除載入的物件,它必須在它被載入的同一個事務中,試圖將其刪除。
3.5 執行程式
執行它的輸出如下所示:
輸出
紅色文字是可以忽略的預設日誌訊息(如果要控制日誌記錄,可以設定自定義log4j.properties檔案)。 在日誌警告的下面,您會看到兩條來自TopLink(JPA實現庫)的訊息,然後是三條訊息全部來自實現。
第一條訊息列印出已新增的新產品線資訊,第二條更新訊息並列印新資訊,最後一條訊息從資料庫中刪除並列印確認訊息。
更多資訊敬請訪問MyEclipse中文網>>
相關文章
- MyEclipse持續性開發教程:用JPA和Spring管理資料(三)EclipseSpring
- MyEclipse持續性開發教程:用JPA和Spring管理資料(二)EclipseSpring
- MyEclipse持續性開發教程:用JPA和Spring管理資料(一)EclipseSpring
- MyEclipse持續性開發教程:用JPA和Spring管理資料(五)EclipseSpring
- 用MyEclipse JPA建立專案(四)Eclipse
- 可持續性從產品開發開始
- MyEclipse移動開發教程:設定所需配置的iOS應用(四)Eclipse移動開發iOS
- 用 MyEclipse 開發 Spring 入門操作EclipseSpring
- MyEclipse WebSphere開發教程:WebSphere 7安裝指南(四)EclipseWeb
- 快應用開發教程及資源彙總,長期維護,持續更新中。。。
- Spring Cloud 簡單教程 持續更新中SpringCloud
- 用MyEclipse JPA建立專案(一)Eclipse
- 用MyEclipse JPA建立專案(二)Eclipse
- 用MyEclipse JPA建立專案(三)Eclipse
- MyEclipse WebSphere開發教程:安裝和更新WebSphere 6.1, JAX-WS, EJB 3.0(四)EclipseWeb
- 軟體開發為何採用持續整合
- Spring boot 四 JPA HibernateSpring Boot
- 開發常識 持續更新~~
- 對持續整合、 持續交付、持續部署和持續釋出的介紹
- Laravel 團隊任務管理系統(持續開發、優化)Laravel優化
- DBeaver安裝教程(開發人員和資料庫管理員通用資料庫管理工具)資料庫
- 微信小程式開發(持續更新)微信小程式
- 你可能需要的開發資源整理(持續更新)
- OSPO如何成為開源可持續性和安全性的關鍵槓桿
- Spring JPA資料庫連線MySQLSpring資料庫MySql
- 基於springmvc+spring-data-jpa+dubbo開發web應用SpringMVCWeb
- odrotbohm/jddd:使用Spring和JPA開發支援DDD概念的庫包Spring
- Spring Boot 2.x基礎教程:Spring Data JPA的多資料來源配置Spring Boot
- HP DP助中石油勘探開發研究院發展可持續性IT
- iOS開發常用巨集,持續更新中iOS
- HTTP非持續連線和持續連線HTTP
- Jenkins 持續整合使用教程Jenkins
- 【持續更新】Eclipse使用教程Eclipse
- 持續整合、持續部署、持續交付、持續釋出
- Spring data jpa 外掛開發——解決規範和效率問題Spring
- gitlab和jenkins做持續整合構建教程GitlabJenkins
- 使用MyEclipse開發Java EE應用:用XDoclet建立EJB 2 Session Bean專案(四)EclipseJavaSessionBean
- MyEclipse移動開發教程:設定所需配置的iOS應用(一)Eclipse移動開發iOS