标准数据层开发

功能 MP接口
新增 int insert(T t)
删除 int deleteById(Serializable id)
修改 int updateById(T t)
根据id查询 T selectById(Serializable id)
查询全部 List<T> selectList()
分页查询 IPage<T> selectPage(IPage<T> page)
按条件查询 IPage<T> selectPage(Wrapper<T> queryWrapper)

# CRUD 使用

@AutoWired
private BookDao bookDao;

...

    Book book = new Book();
    book.setId(1);
    book.setName("aaa");
    bookDao.updateById(book);
...
1
2
3
4
5
6
7
8
9
10
@AutoWired
private BookDao bookDao;

...

    Book book = new Book();
    book.setId(1);
    book.setName("aaa");
    bookDao.updateById(book);
...
1
2
3
4
5
6
7
8
9
10

其中修改操作的参数 T ,我们 set 入 id 后,仅需要再 set 需要修改的字段(属性),别的不修改的 MP 会为其进行保留
比如有行 id=1, name='abc', type='char', description='lowerchar'
我们进行

@AutoWired
private BookDao bookDao;

...

    Book book = new Book();
    book.setId(1);
    book.setName("aaa");
    bookDao.updateById(book);
...
1
2
3
4
5
6
7
8
9
10

即可修改为 id=1, name='aaa', type='char', description='lowerchar'
而不是像我们之前手动写会直接传入 null

# ✅ 简化开发:lombok 简化 POJO 实体类开发

我们 POJO 实体类里面不想自己写或者自己快捷键生成 getter、setter、constructor 等方法,均可以利用注解来完成

导入 lombok 坐标

<!-- pom.xml -->

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
1
2
3
4
5
6

在想自动生成方法的类上面加上下面这样的注解

// Book.java

/* 无参构造 */
@NoArgsConstructor
/* 全参构造 */
@AllArgsConstructor
/* getter */
@Getter
/* setter */
@Setter
/* toString */
@ToString
/* equals、hashCode */
@EqualsAndHashCode

... // 还有很多别的自动生成的方法

public class Book {
    ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

但是似乎也很长,加一个 @Data 可以替代这里除了构造方法之外的另外几个注解

@Data
public class Book {
    ...
1
2
3
Last Updated: 10/8/2023, 5:27:41 PM