Mybatis 查询结果返回 Optional<T>
Posted 笑虾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 查询结果返回 Optional<T>相关的知识,希望对你有一定的参考价值。
Mybatis 查询结果返回 Optional<T>
mybatis-3.5.0 开始支持返回 java.util.Optional
类型。我们只需要把类型换了,Mybatis 会自动帮我们封装好 Optional
。
Dao 直接修改返回值
Poem queryById(Long id);
改为:
Optional<Poem> queryById(Long id);
Service
处理 Optional
:如果为空,我们就创建个默认对象。
public Poem queryById(Long id)
Poem poem = this.poemDao.queryById(id).orElseGet(()->
Poem p = new Poem();
p.setId(999L);
p.setAuthor("耀眼的笨笨");
p.setTitle("虫虫赋");
return p;
);
return poem;
Controller 拿来直接用
@GetMapping("id")
public R<Poem> queryById(@PathVariable("id") Long id)
return R.ok(this.poemService.queryById(id));
查询一下:ID存在时返回结果,ID不存在返回我创建的默认对象
参考资料
笑虾:Mybatis 查询结果返回 Map、List<Map>、Pair
mybatis-3.5.9
optional_on_mapper_method/Mapper.java
OptionalOnMapperMethodTest.java
以上是关于Mybatis 查询结果返回 Optional<T>的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis 查询结果返回 MapList<Map>Pair