1. Antes de aprender LambdaQueryWrapper, vamos ver um trecho de código
(1) Classe de entidade de funcionário
@Data
public class Employee implements Serializable {
@TableId(value = "id")
private Long id;
@TableField(value = "user_name")
private String username;
@TableField(value = "password")
private String password;
@TableField(value = "phone")
private String phone;
@TableField(value = "id_number")
}
(2) Use QueryWrapper para consultar informações de funcionários
QueryWrapper<Employee> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_name",lisi);
Employee emp = employeeService.getOne(queryWrapper);
(3) Use LambdaQueryWrapper para consultar informações de funcionários
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Employee::getUsername, "lisi");
//Employee::getUsername相当于字段username
2. Por comparação, podemos descobrir que os benefícios de usar o LambdaQueryWrapper são os seguintes:
(1) Quando a estrutura da tabela muda, como @TableField(value = "user_name") é alterada para @TableField(value = "name"), desde que o alias da variável de membro da classe permaneça inalterado, ele não afetar a aquisição do resultado do programa!
(2) O QueryWrapper anterior, como um eq ("nome do campo do banco de dados", "valor"), quando projetamos campos de tabela, muitos são _spliced, é fácil inserir o nome do campo do banco de dados incorretamente! Então usamos LambdaQueryWrapper, não é necessário digitar o nome do campo do banco de dados, basta digitar o nome da corcunda correspondente da classe de entidade! ! Por exemplo:
Employee::getUsername é equivalente ao nome de usuário do campo do banco de dados. O uso do LambdaQueryWrapper tem um prompt para evitar que escrevamos o nome errado da coluna do campo