Skip to content

增删改查

创建实体类

java
public class Artist {
    private Long id;
    private String name;
    private Long createTime;
    private Long updateTime;
    private Long version;
    // getter/setter
}
// 或record类(无需回填自增属性时)
public record Artist(Long id,String name,Long createTime,Long updateTime,Long version) {}

说明

  • 实体类和属性 默认会按命名策略转换数据库侧名称,详细可参考命名策略
  • 可以通过@Table@Column来定义自定义表名和列名,而不使用命名策略,详细可参考内置注解

创建实体类DAO对象

java
@Repository
public class ArtistDao extends EntityDao<Artist> {
}

在业务方法中注入实体类Dao

即可使用所有内置方法,实体类Dao无需传入实体类Class,默认即查询当前实体类

java
@Autowired
private ArtistDao dao;

public void helloworld() {
    // 插入数据(lombok.accessors.chain=true时可以链式调用set方法)
    Artist data = new Artist().setName("张三");
    dao.insert(data);

    // 删除ID=1的数据
    long delCount = dao.deleteById(1L);

    // 修改ID=2的名称
    dao.updateById(new Artist().setName("改名 "),2L);

    // 获取列表
    List<Artist> list = dao.list();
    // 获取条数
    long count dao.count();
    // 获取分页
    Page<Artist> list = dao.page(Pageable.of(1,10));
    // 是否存在ID=3
    dao.existsById(3L);
    // 获取单条数据
    Artist id4 = dao.getById(4L);
    // 获取某一列的列表
    List<String> names = dao.listColumn(Artist::getName);
    // 获取单条记录的某一列的值
    String id5Name = dao.getColumnById(Artist::getName,5L);
    // optional查询ID=6的对象
    Optional<Artist> id6 = dao.optionalById(6L);
    // stream流式查询
    Stream<Artist> stream = dao.stream();
}

以上仅介绍 最基础的方法, 每个方法都有多种参数组合的重载,根据需要选择使用即可

日常开发中,肯定有很多时候需要将VO/Request等对象与实体类对象转换的情况,特别繁琐和麻烦, 为了解决这个问题, 我们支持直接插入/更新 VO/request等对象,点击下一页继续