理论分析

简介: MyBatisPlus通过Wrapper条件构造器支持丰富查询,继承BaseMapper即可使用常用方法。AbstractWrapper定义eq、like、between等条件,QueryWrapper可指定查询字段减少IO开销,UpdateWrapper用于更新特定字段,提升SQL性能。

yBatisPlus支持各种复杂的where条件,可以满足日常开发的所有需求。当我们继承BaseMapper之后,就具备了一些常见的接口方法

这里的Wrapper就是各种条件构造器,他的子类继承体系如下

在这个体系中,AbstractWrapper定义了各种查询的条件,如:eq、in、between、like、gt、lt等。也就是说借助于他可以完成单表各种场景的查询条件组装。那为什么他又有QueryWrapper、UpdateWrapper呢?这是因为我们一个完整的查询语句是:SELECT 字段 FROM 表名 WHERE 条件
QueryWrapper可以帮助我们声明要查询的具体字段,避免查询全部字段,导致IO开销过大,从而影响SQL性能的问题。同理UpdateWrapper一样,可以帮我们更新指定字段。

相关文章
|
2月前
|
XML Java 数据库连接
引入MybatisPlus的起步依赖
MyBatisPlus官方提供了一站式Starter,集成MyBatis与MyBatisPlus全部功能,支持自动装配,可直接替代原生MyBatis依赖。引入`mybatis-plus-boot-starter`后,无需额外配置,简化开发流程,原MyBatis依赖可移除,提升效率。
|
2月前
|
Java Spring 容器
接口定义
该类为用户管理实现类,通过@Service注解声明为Spring容器管理的Bean。其中isAdult和calculate方法分别用于判断用户是否成年及计算BMI结果,均使用@QLRule注解标记为规则方法,并通过@QLAlias指定参数别名,实际逻辑由规则引擎触发执行。
获取原始脚本,参数
QLRule中value支持缺省值,对应YAML中key为ruleCode;默认读取路径为com.c2f.boot.starter.rule.engine.QLExpressProperties;原始脚本由String rule获取,用于构建AST语法树。
构建后续赋值上下文
默认构建时以形参value生成一组上下文;若取别名,则额外构建别名为value的一组,支持后续yaml汉化。因此,默认上下文数为形参个数×1,有别名时为形参个数×2。
定义User
该类为用户实体类,包含用户ID和姓名属性。通过Lombok注解简化代码,自动生成getter、setter、toString及构造方法,提升开发效率,适用于数据封装与传输场景。(236字符)
定义UserDAO
UserDao 是一个用户数据访问组件,提供根据ID查找用户的方法。当ID大于10时返回null,否则返回对应用户对象,用于模拟简单用户查询逻辑。
|
2月前
|
Java Spring
定义UserService
该服务类通过构造注入UserDao,提供根据ID查询用户的功能,实现业务逻辑与数据访问的解耦,符合Spring推荐的依赖注入设计原则。(136字)
明确应用调用边界
应用边界影响产品定位与设计,需在架构图中用不同颜色标注外部系统、内部应用、依赖系统及输出系统,明确交互关系,为后续规划与发展提供清晰基础。
|
2月前
|
存储 Java 编译器
定义自定义注解
`@interface CustomAnnotation` 定义一个运行时注解,可被javadoc记录,仅用于方法。通过`name()`和`value()`提供默认字符串属性,结合`@Retention(RUNTIME)`与反射配合使用,实现类似Spring中`@PostMapping`的注解功能,用于方法的元数据标记与处理。(238字)
AOP+Controller使用自定义注解
通过自定义注解@CustomAnnotation和AOP切面,实现对用户查询方法的自动日志记录。当调用findUser接口时,可输出类名、方法名及注解中的日志信息,提升系统可观测性与维护效率。(238字)