文末更多精彩内容
特征
- 1、很轻量,整个框架只依赖 Mybatis 再无其他第三方依赖
- 2、只增强,支持 Entity 的增删改查、及分页查询,但不丢失 Mybatis 原有功能
- 3、内置 Db + Row 工具,可以无需实体类对数据库进行增删改查
- 4、支持多种数据库类型,还可以通过方言持续扩展
- 5、支持多(联合)主键,以及不同的主键内容生成策略
- 6、支持逻辑删除设置、更新或插入的默认值配置以及大字段等设置
- 7、支持乐观锁字段配置,在数据更新时自动进行乐观锁检测
- 8、极其友好的 SQL 联动查询,IDE 自动提示不再担心出错
示例
分页查询
// 查询第 5 页,每页 10 条数据,通过 QueryWrapper 构建条件查询
QueryWrapper query=QueryWrapper.create()
.select()
.from(ACCOUNT)
.where(ACCOUNT.ID.ge(100))
.and(ACCOUNT.USER_NAME.like("张").or(ACCOUNT.USER_NAME.like("李")))
.orderBy(ACCOUNT.ID.desc());
// 执行 SQL:
// ELECT * FROM tb_account
// WHERE id >= 100
// AND (user_name LIKE '%张%' OR user_name LIKE '%李%' )
// ORDER BYidDESC
// LIMIT 40,10
Page accounts = MybatisFlexBootstrap.getInstance()
.execute(AccountMapper.class,mapper->
mapper.paginate(5,10,query)
);
如何通过实体类 Account.java 生成 QueryWrapper 所需要的 "ACCOUNT" 类 ?
答:Mybatis-Flex 使用了 APT(Annotation Processing Tool)技术,在项目编译的时候,会自动根据 Entity 类定义的字段帮你生成 "ACCOUNT" 类, 通过开发工具构建项目(如下图),或者执行maven 编译命令 mvn clean package: 都可以自动生成。这个原理和 lombok 一致。