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 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 users = User.all();

更新数据

1.update
当我们获取或创建了实体对象之后,调用实体对象的update方法就能把对象所有持久化属性保存到该对象的id对应的数据中。

user.update();

如果我们需要只更新这个 id 对应的数据的某些字段,我们可以调用静态方法 update。

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

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

2.updateAll
指定 id 的更新操作在实际中其实比较少,更多的是指定过滤条件的批量更新。

Map fields = new HashMap<>();
fields.put("name", "wunian");
String where = "name = ?";
User.update(fields, where, "wunian"); // 这里最后一个参数是可变参数

你可能感兴趣的:(Leap框架,增删查改,Java)