Java 8 in Action (3) -- Lambda的简单使用

Lambda及其等效方法引用 ::

例子
Lambda等效方法引用
(Apple a)->a.getWeight()Apple::getWeight
()->Thread.CurrentThread().dumpStack()Thread.currentThread()::dumpStack
(str,i)->str.substring(i)String:: substring
(String s)->System.out.pringln(s)System.out::println
方法引用主要有三类
1. 指向静态方法的引用

eg: Integer的parseInt方法,写作Integer::parseInt

2. 指向任意类型实例方法的方法引用

eg: String的length方法,写作String::length

3. 指向现有对象的实例方法的引用

eg: 假设你有一个局部变量aStudent用于存放Student类型的对象,它支持实例方法getAge,那么你就可以写成aStudent::getAge
ps: 第3条表示不是很懂
还有构造方法的引用 ClassName::new

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mybatis-plus结合lambda使用是指在使用mybatis-plus框架时,利用lambda表达式进行查询操作,使代码更加简洁易懂。例如,使用lambda表达式可以替代原本需要大量SQL语句的查询操作,让代码更加简洁明了。 ### 回答2: Mybatis-plus是Mybatis的增强框架,它简化了开发者对数据库的操作。在mybatis-plus中结合lambda使用可以进一步提高开发效率和代码可读性。这里主要介绍mybatis-plus中lambda使用方法。 1. Lambda查询 mybatis-plus提供了LambdaQueryWrapper类来支持lambda查询,可以用于构建复杂的查询条件。例如: ```java LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(User::getName, "John").eq(User::getAge, 18).like(User::getEmail, "@gmail.com"); List<User> userList = userService.list(wrapper); ``` 上述代码中,使用LambdaQueryWrapper构建了一个复杂的查询条件,查询用户姓名为"John"、年龄为18、邮箱包含"@gmail.com"的用户集合。 此外,LambdaQueryWrapper还支持其他的查询操作,包括in、not-in、between、isNull、isNotNull等操作,使用方法都类似。 2. Lambda更新 lambda更新语法类似于LambdaQueryWrapper,只需调用LambdaUpdateWrapper类的方法即可。例如: ```java LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>(); wrapper.set(User::getEmail, "[email protected]").eq(User::getAge, 18); userService.update(wrapper); ``` 上述代码中,使用LambdaUpdateWrapper更新了年龄为18的用户邮箱为"[email protected]"。 3. Lambda删除 lambda删除使用LambdaQueryWrapper来构造删除条件。例如: ```java LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(User::getAge, 20); userService.remove(wrapper); ``` 上述代码中,使用LambdaQueryWrapper删除了所有年龄为20的用户。 4. Lambda排序 mybatis-plus还提供了LambdaQueryChainWrapper类,可以使用链式语法进行排序操作。例如: ```java List<User> userList = new LambdaQueryChainWrapper<>(userService.getBaseMapper()) .orderByDesc(User::getAge) .list(); ``` 上述代码中,使用LambdaQueryChainWrapper链式操作进行查询,按照年龄降序排序。 总的来说,mybatis-plus结合lambda使用可以大大提高代码编写效率和可读性,使代码更加简洁和优雅,建议使用。 ### 回答3: Mybatis-Plus 是 Mybatis 的扩展框架,它简化了 Mybatis 的开发流程,提供了大量便捷的API和增强的功能。在 Mybatis-Plus 中,结合 Lambda 表达式的使用,可以更加简洁优雅地完成 CRUD 操作和查询。 Lambda 表达式是 Java SE 8 中引入的一种新语法,它能够以一种更加简洁、更加表意清晰的方式来描述 Java 代码中常见的模式。在 Mybatis-Plus 中,Lambda 表达式非常重要,因为它能够被用于各种查询方式,包括等于、不等于、大于、小于、范围查询等等,使得代码更加简洁易懂。 使用 Lambda 表达式进行查询操作,可以通过以下步骤来完成: 1. 引入 Mybatis-Plus 和 Lambda 依赖。 2. 创建实体类并添加注解。 3. 在 Mapper 中继承 BaseMapper,并使用 @Reposiotry 注解。 4. 使用 LambdaQueryWrapper 来创建查询条件。 5. 使用 selectList 方法查询数据。 例如: ```java //引入Mybatis-Plus和Lambda依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> //创建实体类并添加注解 @Data @AllArgsConstructor @NoArgsConstructor @TableName(value = "user") public class UserEntity { @TableId(type = IdType.AUTO) private Integer id; private String name; private Integer age; private String email; @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; } //在Mapper中继承BaseMapper,并使用@Repository注解 @Repository public interface UserDao extends BaseMapper<UserEntity> { } //使用LambdaQueryWrapper来创建查询条件 @Autowired UserDao userDao; @Test void testLambdaQueryWrapper() { LambdaQueryWrapper<UserEntity> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(UserEntity::getName, "Jack"); List<UserEntity> userList = userDao.selectList(wrapper); userList.forEach(System.out::println); } ``` 以上代码中,我们创建了一个 UserDao 接口,继承了 BaseMapper,并使用 @Repository 注解将其注入到容器中。然后我们使用LambdaQueryWrapper,来创建了一个查询条件:查询 name 为 Jack 的用户。执行查询时,调用了 selectList 方法,并将包含查询结果的列表打印出来,最终实现了查询操作。 从以上例子可以看出,结合 Lambda 表达式使用 Mybatis-Plus 的确使代码更加简洁易懂,提高了开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值