聚合全网技术文章,根据你的阅读喜好进行个性推荐
Mybatis-Flex 是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。 总而言之,Mybatis-Flex 能够极大地提高我们的开发效率和开发体验,让我们有更多的时间专注于自己的事情。
Mybatis-Flex 是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。
总而言之,Mybatis-Flex 能够极大地提高我们的开发效率和开发体验,让我们有更多的时间专注于自己的事情。
MyBatis-Flex v1.3.0 主要是新增了一对多、多对一等查询方法,同时在 QueryWrapper 的表达上,增加了许多常用的函数、case when 等 SQL 构建。
以下是文章的多对多示例,一篇文章可能归属于多个分类,一个类可以有多篇文章,需要用到中间表 article_category_mapping。
article_category_mapping
Article 实体类:
public class Article { private Long id; private String title; private String content; //文章的归属分类,可能是 1 个或者多个 private List<Category> categories; //getter setter }
查询代码:
QueryWrapper queryWrapper = QueryWrapper.create() .select().form(ARTICLE) .where(ARTICLE.id.ge(100)); List<Article> articles = mapper.selectListByQuery(queryWrapper , fieldQueryBuilder -> fieldQueryBuilder .field(Article::getCategories) // 或者 .field("categories") .type(Category.class) //非集合,自动读取 type,可以不指定 type .queryWrapper(article -> QueryWrapper.create() .select().from(CATEGORY) .where(CATEGORY.id.in( select("category_id").from("article_category_mapping") .where("article_id = ?", article.getId()) ) ) );
更多关于类似场景请查看文档:https://mybatis-flex.com/zh/base/field-query.html
另外,v1.3.0 新增的 Case When 的 SQL 构建语法如下:
QueryWrapper wrapper = QueryWrapper.create() .select(ACCOUNT.ID ,case_().when(ACCOUNT.ID.ge(2)).then("x2") .when(ACCOUNT.ID.ge(1)).then("x1") .else_("x100") .end().as("xName")
其生成 SQL 如下:
SELECT `id`, (CASE WHEN `id` >= 2 THEN 'x2' WHEN `id` >= 1 THEN 'x1' ELSE 'x100' END) AS `xName` FROM `tb_account`
执行结果如下:
|id |xName | |1 |x1 | |2 |x2 |
关于这部分更多的文档请参考:https://mybatis-flex.com/zh/base/querywrapper.html#select-case-when
Mybatis-Flex v1.3.0 主要更新如下:
和其他框架对比请参考:
MyBatis-Plus
Fluent-Mybatis
进一步了解 MyBatis-Flex 框架,请访问 Mybatis-Flex 官网:https://mybatis-flex.com
评论删除后,数据将无法恢复
Mybatis-Flex v1.3.0 发布,新的方式使用一对多和多对一
MyBatis-Flex v1.3.0 主要是新增了一对多、多对一等查询方法,同时在 QueryWrapper 的表达上,增加了许多常用的函数、case when 等 SQL 构建。
以下是文章的多对多示例,一篇文章可能归属于多个分类,一个类可以有多篇文章,需要用到中间表
article_category_mapping
。Article 实体类:
查询代码:
更多关于类似场景请查看文档:https://mybatis-flex.com/zh/base/field-query.html
另外,v1.3.0 新增的 Case When 的 SQL 构建语法如下:
其生成 SQL 如下:
执行结果如下:
关于这部分更多的文档请参考:https://mybatis-flex.com/zh/base/querywrapper.html#select-case-when
Mybatis-Flex v1.3.0 主要更新如下:
和其他框架对比请参考:
MyBatis-Plus
、Fluent-Mybatis
功能方面的对比:https://mybatis-flex.com/zh/intro/comparison.htmlMyBatis-Plus
性能方面的对比:https://mybatis-flex.com/zh/intro/benchmark.html进一步了解 MyBatis-Flex 框架,请访问 Mybatis-Flex 官网:https://mybatis-flex.com