2012-08-27 92 views
0

什麼是(如果有)在CRUD操作上返回對象的最佳實踐。在我的情況下,對於Java。返回CRUD的最佳實踐

例如,對於CREATE,我會返回對象,它的ID ...?

+0

CRUD應用程序的'最佳實踐'當然很重要,但並不總是與'最佳實踐'一樣重要,因爲您的CRUD應用程序遇到錯誤時... – BenCole

回答

6
  • 創建 - 創建的對象。我知道,我知道它通常是同一個對象,但它既方便又優雅。

  • 更新 - 也返回相同的對象。在像JPA這樣的一些框架中,更新後的對象可以是不同的實例,然後是提供的實例。

  • 還原 - 顯然是要恢復的對象。如果您要恢復列表,請考慮實施分頁 - 使用包含在Page對象中的偏移/最大值和返回列表,並添加一些額外的元數據,例如條目總數。

  • 刪除 - 這裏沒有什麼可返回的,void

+0

創建通常會導致生成新的數據庫ID,所以創建的對象的返回副本可能很有用。 –

+0

我認爲你應該編輯_crate_ for _create_(反正是一件小事)。對於** DELETE **,如果刪除進行得很好,是不是會返回一個布爾值? – elecay

+0

@elecay:typo,thx。 WRT。 *刪除*:這取決於您的服務的語義。如果你確定你正在刪除的對象存在,堅持'void'並且如果沒有找到它會拋出異常。如果你的服務接受了可能已經不存在的對象,'boolean'沒問題([類似於Java集合](http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html#除去(java.lang.Object中)))。 –

0

有沒有真正定義的一組最佳實踐,但這裏是我是如何使用的CRUD特效列表:

創建:通過在無數據或一些數據(例如,對於新用戶姓名,地址,電子郵件地址等)並獲取新插入記錄的新對象或主鍵。

閱讀:傳遞可識別單個記錄或多組記錄(例如,很可能是主鍵,如個人ID或電子郵件地址)的內容。

更新:傳遞所有要更新的數據。如果數據片段不被更新,請確保您允許傳入空值,如果值爲空,則跳過更新該列。

刪除:傳入標識符(例如某個人的ID或電子郵件地址)並返回任何內容(無效)或表示刪除成功的布爾值。