天天看點

Leap如何對資料進行增删查改新增資料删除資料查詢資料更新資料

新增資料

1.create

新增資料可以調用實體對象的 create 方法,即可将目前對象儲存到資料庫中。

User user = new User();
user.setId("1");
user.setName("wunian");
user.create();
           

2.save

還可以使用 save 方法,它會根據目前實體對象的 id 判斷,如果id存在,則執行update,如果id不存在,則執行insert。

User user = new User();
user.setId(null);
user.setName("wunian");
user.save();  // 這裡由于 id 是 null ,是以執行的是 insert 資料操作

user.setName("wunian2");
user.save(); // 這裡由于結果 insert 操作 id 已經有值了,是以再執行 save 将會執行 update 資料操作
           

删除資料

1.delete

通過實體 id 删除資料,delete 方法在找不到指定 id 的記錄可以删除的時候将會報錯 RecordNotDeletedException 。在不需要知道執行結果隻管執行删除語句的場景下可以将 delete 方法換成 tryDelete 方法,用法與上面一緻。

// 通過靜态方法
User.delete("1");

// 通過執行個體方法
User user = new User();
user.setId("1");
user.delete();
           

2.deleteAll

deleteAll 方法是一個比較危險的方法,在什麼參數都不傳的情況下,它會删除資料庫表裡所有記錄,是以在常用的場景上我們一般會加上過濾條件。

// 過濾删除方式1,參數使用變長數組
User.deleteAll("id = ? or name = ?", "1", "wunian");

// 過濾删除方式2,參數使用 Map
Map<String, Object> params = new HashMap<>();
params.put("name", "wunian");
User.deleteAll("name = :name", params);
           

查詢資料

1.find 與 findOrNull

String id = "1";
User user = User.find(id);
           

以上方法的參數 id 如果在資料庫中沒有對應的記錄,此方法将抛錯。如果不希望這種情況抛錯,可以改為使用 findOrNull。下面的user 對象在找不到對應 id 的情況下,将為 null。

String id = "1";
User user = User.findOrNull(id);
           
  1. findBy

    對于簡單的單條件查詢,可以調用 findBy。

User user = User.findBy("name", "wunian");
           

3.all

如果需要列出資料庫表中的所有記錄,可以使用 all 方法。

List<User> users = User.all();
           

更新資料

1.update

當我們擷取或建立了實體對象之後,調用實體對象的update方法就能把對象所有持久化屬性儲存到該對象的id對應的資料中。

user.update();
           

如果我們需要隻更新這個 id 對應的資料的某些字段,我們可以調用靜态方法 update。

// 使用 Map 傳遞更新字段和值
Map<String, Object> fields = new HashMap<>();
fields.put("name", "wunian");
User.update("1", fields);

// 在隻更新一個字段值的場景下,也可以省略 Map
User.update("1", "name", "wunian");
           

2.updateAll

指定 id 的更新操作在實際中其實比較少,更多的是指定過濾條件的批量更新。

Map<String, Object> fields = new HashMap<>();
fields.put("name", "wunian");
String where = "name = ?";
User.update(fields, where, "wunian"); // 這裡最後一個參數是可變參數