程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(3)

原力计划

发布于2023-06-19 22:21     阅读(1409)     评论(0)     点赞(22)     收藏(4)


序言

你只管努力,其他交给时间,时间会证明一切。

MyBatis-Plus 是 MyBatis 的增强工具,它简化了 MyBatis 的开发,并提供了许多实用的功能和工具类。下面是 MyBatis-Plus 的使用方法:

1 使用方法

1. 引入依赖

在 Maven 项目中,需要在 pom.xml 文件中添加如下依赖:

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>3.4.3.1</version>
  5. </dependency>

其中 mybatis-plus-boot-starter 是 MyBatis-Plus 的 Spring Boot Starter

2. 配置 MyBatis-Plus

在 Spring Boot 项目中,可以通过在 application.properties 或 application.yml 文件中配置 MyBatis-Plus。例如:

  1. mybatis-plus:
  2. # mapper 文件的路径,多个值用逗号隔开
  3. mapper-locations: classpath:mapper/*.xml
  4. # 实体类所在的包路径,多个值用逗号隔开
  5. typeAliasesPackage: com.example.demo.entity

3. 编写实体类

使用 MyBatis-Plus 时,需要编写实体类,并在实体类上添加注解。例如:

  1. @Data
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. @TableName("user")
  5. public class User {
  6. @TableId(type = IdType.AUTO)
  7. private Long id;
  8. private String name;
  9. private Integer age;
  10. private String email;
  11. }

在这个实体类中,使用了 Lombok 的 @Data 注解自动生成 getter 和 setter 方法,@NoArgsConstructor 和 @AllArgsConstructor 注解自动生成无参和全参构造方法,@TableName 注解指定了实体类对应的数据库表名,@TableId 注解指定主键的生成方式。

4. 编写 Mapper 接口

使用 MyBatis-Plus 时,可以不用编写 SQL 语句,只需要编写 Mapper 接口,并让该接口继承 MyBatis-Plus 提供的 BaseMapper 接口。例如:

  1. public interface UserMapper extends BaseMapper<User> {
  2. }

在这个接口中,继承了 MyBatis-Plus 提供的 BaseMapper 接口,即可使用 MyBatis-Plus 提供的增删改查方法。

5. 使用 MyBatis-Plus 提供的增删改查方法

在编写 Mapper 接口后,即可在 Service 层中使用 MyBatis-Plus 提供的增删改查方法。例如:

  1. @Service
  2. public class UserServiceImpl implements UserService {
  3. @Autowired
  4. private UserMapper userMapper;
  5. @Override
  6. public List<User> getUserList() {
  7. return userMapper.selectList(null);
  8. }
  9. @Override
  10. public User getUserById(Long id) {
  11. return userMapper.selectById(id);
  12. }
  13. @Override
  14. public void saveUser(User user) {
  15. userMapper.insert(user);
  16. }
  17. @Override
  18. public void updateUser(User user) {
  19. userMapper.updateById(user);
  20. }
  21. @Override
  22. public void deleteUser(Long id) {
  23. userMapper.deleteById(id);
  24. }
  25. }

在这个 Service 实现类中,使用了 MyBatis-Plus 提供的增删改查方法,例如 selectListselectByIdinsertupdateById 和 deleteById 等方法。这些方法的参数和返回值都非常简单,使用起来非常方便。

2 构造器介绍

1 LambdaQueryWrapper介绍

LambdaQueryWrapper 是 MyBatis-Plus 提供的一个查询条件构造器,它可以通过 Lambda 表达式来构造查询条件,使得查询条件更加简洁、易读。下面是 LambdaQueryWrapper 的具体使用方法介绍:

1.1 创建 LambdaQueryWrapper 对象

在使用 LambdaQueryWrapper 之前,需要先创建 LambdaQueryWrapper 对象。例如:

LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();

在创建 LambdaQueryWrapper 对象时,需要指定实体类的类型,这里以 User 类为例。

1.2 构造查询条件

使用 LambdaQueryWrapper 可以很方便地构造查询条件。例如:

  1. queryWrapper.eq(User::getName, "张三"); // 等于
  2. queryWrapper.ne(User::getAge, 18); // 不等于
  3. queryWrapper.gt(User::getAge, 20); // 大于
  4. queryWrapper.ge(User::getAge, 20); // 大于等于
  5. queryWrapper.lt(User::getAge, 30); // 小于
  6. queryWrapper.le(User::getAge, 30); // 小于等于
  7. queryWrapper.like(User::getName, "张"); // 模糊查询
  8. queryWrapper.in(User::getAge, Arrays.asList(20, 25, 30)); // in 查询
  9. queryWrapper.isNull(User::getEmail); // 判断为 null
  10. queryWrapper.isNotNull(User::getEmail); // 判断不为 null

在上面的例子中,使用了 Lambda 表达式来指定查询条件,例如 User::getName 表示查询 User 实体类中的 name 属性。

1.3 组合查询条件

使用 LambdaQueryWrapper 可以很方便地组合查询条件。例如:

queryWrapper.eq(User::getName, "张三").and(qw -> qw.lt(User::getAge, 30).or().isNotNull(User::getEmail));

在上面的例子中,使用了 and 和 or 方法来组合查询条件,实现了一个复杂的查询条件。

1.4 执行查询操作

使用构造好的 LambdaQueryWrapper 对象,可以执行查询操作。例如:

List<User> userList = userMapper.selectList(queryWrapper);

在使用 selectList 方法时,将 LambdaQueryWrapper 对象作为参数传入,即可执行查询操作。同理,还可以使用 selectOne、selectCount 等方法执行查询操作。

以上是 LambdaQueryWrapper 的具体使用方法介绍,通过使用 LambdaQueryWrapper,可以很方便地构造查询条件,使得查询操作更加简洁、易读。

2 LambdaUpdateWrapper介绍 

LambdaUpdateWrapper 是 MyBatis-Plus 提供的一个更新条件构造器,它可以通过 Lambda 表达式来构造更新条件,使得更新操作更加简洁、易读。

下面是 LambdaUpdateWrapper 的具体使用方法介绍:

1. 创建 LambdaUpdateWrapper 对象

在使用 LambdaUpdateWrapper 之前,需要先创建 LambdaUpdateWrapper 对象。例如:

LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();

在创建 LambdaUpdateWrapper 对象时,需要指定实体类的类型,这里以 User 类为例。

2. 构造更新条件

使用 LambdaUpdateWrapper 可以很方便地构造更新条件。例如:

  1. updateWrapper.eq(User::getName, "张三").set(User::getAge, 30); // 等于
  2. updateWrapper.ne(User::getAge, 18).set(User::getEmail, "test@test.com"); // 不等于
  3. updateWrapper.gt(User::getAge, 20).set(User::getEmail, "test@test.com"); // 大于
  4. updateWrapper.ge(User::getAge, 20).set(User::getEmail, "test@test.com"); // 大于等于
  5. updateWrapper.lt(User::getAge, 30).set(User::getEmail, "test@test.com"); // 小于
  6. updateWrapper.le(User::getAge, 30).set(User::getEmail, "test@test.com"); // 小于等于

在上面的例子中,使用了 Lambda 表达式来指定更新条件,例如 User::getName 表示更新 User 实体类中的 name 属性。

3. 组合更新条件

使用 LambdaUpdateWrapper 可以很方便地组合更新条件。例如:

updateWrapper.eq(User::getName, "张三").and(qw -> qw.lt(User::getAge, 30).or().isNotNull(User::getEmail)).set(User::getAge, 20);

在上面的例子中,使用了 and 和 or 方法来组合更新条件,实现了一个复杂的更新条件。

4. 执行更新操作

使用构造好的 LambdaUpdateWrapper 对象,可以执行更新操作。例如:

userMapper.update(null, updateWrapper);

在使用 update 方法时,将 LambdaUpdateWrapper 对象作为参数传入,即可执行更新操作。同理,还可以使用 updateById、updateBatchById 等方法执行更新操作。

通过使用 LambdaUpdateWrapper,可以很方便地构造更新条件,使得更新操作更加简洁、易读。



所属网站分类: 技术文章 > 博客

作者:java之恋

链接:http://www.javaheidong.com/blog/article/674512/414bf35c2f9d3f5cd770/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)