恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

数据库框架低代码查询工具类[自定义注解-反射-泛型]

  • 首页
  • 资讯中心
  • /
  • 数据库框架低代码查询工具类[自定义注解-反射-泛型]

相关资讯

百度网盘秒传链接终极指南:免费全平台转存解决方案 2026/7/30 20:43:46
主库写了备库查不到?主从延迟四步定位法 2026/7/30 20:43:45
计算机毕业设计之基于SpringBoot的爱诺宠物医院管理系统的设计与实现 2026/7/30 20:38:41

最新资讯

Flask框架入门与实践:从基础到生产环境部署
腺样体肥大:不只是影响颜值,智商也会受牵连?
ssm296基于web的楼房销售系统+jsp(文档+源码)_kaic
【RCELABS】Level19~21 —— RCE 利用路径
基于微信小程序的校园快递代取系统的设计与实现(源码+LW+部署讲解)
计算机毕业设计之vue的校园兼职综合服务平台

今日推荐

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]
[GESP202606 四级] 扫雷
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

本周热门

G-Helper完整指南:免费开源工具彻底优化华硕笔记本性能
解决全部报错!OpenClaw Windows适配优化+网关修复教程
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

本月精选

数据库框架低代码查询工具类[自定义注解-反射-泛型]

发布时间:2026/7/30 20:43:46
数据库框架低代码查询工具类[自定义注解-反射-泛型] 目录一、使用场景二、框架使用三、工具设计逻辑四、代码工具逻辑实现1.公用自定义注解设计2.myabatis-Plus 框架使用2-1.查询包装器生成的工具类2-2.查询DTO类运用2-3.service应用3.jpa框架使用3-1.查询包装器生成的工具类3-2.查询DTO类运用3-3.service应用五、代码知识点解析1.泛型1-1.介绍1-2.主要作用1-3.核心概念2.反射2-1.介绍2-2.核心概念2-3.主要功能3.自定义注解3-1.基本概念3-2.关键元注解一、使用场景在日常的工作中,我们难免会涉及单个报表的多个不同字段的查询,如果一个一个去声明查询操作类型(例如:like),开发时间长且日后维护时间较长,并不利于当下的快节奏的开发模式,那如何高效提高我们的报表查询工作呢?可以通过我们学习java基础知识去设计一下~二、框架使用本文数据库框架:mybatisPlus、jpajava开发框架:springbootjava运用知识:自定义注解、反射、泛型三、工具设计逻辑1.通过使用自定义注解去配置查询DTO类进行字段声明2.根据使用的数据库映射框架,进行针对性的泛型工具类设计,返回数据库DO的查询包装器3.泛型工具类中,通过反射去获取查询DTO的注解内容,进行查询的拼接4.从工具类获取到的查询包装器,根据数据库映射框架封装好的查询方法,进行获取我们所需的数据四、代码工具逻辑实现1.公用自定义注解设计@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface SearchCriteria { // 范围查询时, 用于指定字段名 String value() default ""; // 查询操作 SearchOperation operation() default SearchOperation.EQUAL; // 限制特定的方法使用 方法名用|包裹 例如:|page|report| String limitMethod() default ""; // in操作时的分离器 String separator() default ""; enum SearchOperation { IN, EQUAL, NOT_EQUAL, NOT_NULL, LIKE, LEFT_LIKE, RIGHT_LIKE, GREATER_THAN_EQUAL, GREATER_THAN, LESS_THAN_EQUAL, LESS_THAN } }2.myabatis-Plus 框架使用2-1.查询包装器生成的工具类@Slf4j public class QueryWrapperBuilderT { public T QueryWrapper builderQueryWrapper(Object bean, String methodName) { QueryWrapperT queryWrapper = new QueryWrapper(); if (bean == null) { return queryWrapper; } try { for (Field field : bean.getClass().getDeclaredFields()) { field.setAccessible(true); SearchCriteria annotation = field.getAnnotation(SearchCriteria.class); Object fieldValue = field.get(bean); if (annotation == null || fieldValue == null || (field.getType() == String.class StringUtils.isBlank(fieldValue.toString()))) { continue; } if (StringUtils.isNotBlank(annotation.limitMethod()) methodName != null !annotation.limitMethod().contains("|" + methodName + "|")) { continue; } String fieldName = StringUtils.isBlank(annotation.value()) ? field.getName() : annotation.value(); switch (annotation.operation()) { case EQUAL: queryWrapper.eq(fieldName, fieldValue); break; case GREATER_THAN_EQUAL: // 大于等于 queryWrapper.ge(fieldName, fieldValue); break; case GREATER_THAN: //大于 queryWrapper.gt(fieldName, fieldValue); break; case LESS_THAN_EQUAL: //小于等于 queryWrapper.le(fieldName, fieldValue); break; case LESS_THAN: //小于 queryWrapper.lt(fieldName, fieldValue); break; case LIKE: //中模糊查询 queryWrapper.like(fieldName, fieldValue); break; case LEFT_LIKE: //左模糊查询 queryWrapper.likeLeft(fieldName, fieldValue); break; case RIGHT_LIKE: //右模糊查询 queryWrapper.likeRight(fieldName, fieldValue); break;

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号