Skip to content

更新数据

根据主键更新实体类数据

java
User user = User.builder()
    .id(1)
    .userName("张三")
    .birthday(new Date())
    .build();

Db.table(User.class)
    .updater()
    .add(user)
    .execute();

根据主键批量更新实体类数据

java
User user1 = User.builder()
    .id(1)
    .userName("张三")
    .birthday(new Date())
    .build();

User user2 = User.builder()
    .id(2)
    .userName("李四")
    .birthday(new Date())
    .build();

Db.table(User.class)
    .updater()
    .add(user1, user2)
    .execute();

根据条件更新实体类数据

java
User user = User.builder()
    .userName("张三")
    .birthday(new Date())
    .build();

Db.table(User.class)
    .updater()
    .add(user)
    .where(sys_user.id.eq(1))
    .execute();

根据条件个性化更新数据

java
Db.table(User.class)
    .updater()
    .set(sys_user.user_name, "张三")
    // 更新 NULL 值
    .set(sys_user.age, SqlValue.ofNull())
    // 更新原生片段
    .set(sys_user.birthday, SqlValue.ofRaw("NOW()"))
    .where(sys_user.id.eq(1))
    .execute();
sql
UPDATE sys_user SET user_name = "张三", age = NULL, birthday = NOW()

字段自增或自减

java
// 自增 age = age + 1
Db.table(User.class)
    .updater()
    .increment(sys_user.age)
    .execute();

// 自增 age = age + 5
Db.table(User.class)
    .updater()
    .increment(sys_user.age, 5)
    .execute();

// 自减 age = age - 1
Db.table(User.class)
    .updater()
    .decrement(sys_user.age)
    .execute();

// 自减 age = age - 5
Db.table(User.class)
    .updater()
    .decrement(sys_user.age, 5)
    .execute();

Released under the Apache License.