System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于Mybatis-Plus的数据动态查询方法及系统技术方案_技高网

基于Mybatis-Plus的数据动态查询方法及系统技术方案

技术编号:39980165 阅读:11 留言:0更新日期:2024-01-09 01:28
本发明专利技术提供了一种基于Mybatis‑Plus的数据动态查询方法及系统,包括:步骤S1:构造QueryWrapper构造器;步骤S2:解析输入的预设基本参数并输入QueryWrapper构造器获取动态查询条件;步骤S3:基于获取的动态查询条件获取查询结果。本发明专利技术使用动态查询,可以将查询逻辑集中在一个地方管理,而不是分散在各个表的查询SQL中。这样可以减少代码的冗余性和复杂性,提高代码的可维护性和可读性。

【技术实现步骤摘要】

本专利技术涉及数据查询,具体地,涉及基于mybatis-plus的数据动态查询方法及系统,更为具体地,涉及基于mybatis-plus框架的querywrapper条件构造器和mybatis框架的@select注解实现的动态查询方法。


技术介绍

1、mybatis-plus的框架简化了基础的增删改查方法,使开发效率得到提高,但是基础的查询方法需要指定查询字段,为此每个表的查询都需要单独的写代码。

2、专利文献cn116303565a(申请号:202310109746.5)公开了一种基于mybatis-plus复杂查询的数据映射方法、装置和介质,包括:从元数据中获取所有的查询字段,遍历所有查询字段;调用mybatis-plus的selectmaps函数查询数据;进行数据聚合操作,从元数据中获取查询字段和实体的映射关系;根据映射关系完成数据填充。


技术实现思路

1、针对现有技术中的缺陷,本专利技术的目的是提供一种基于mybatis-plus的数据动态查询方法及系统。

2、根据本专利技术提供的一种基于mybatis-plus的数据动态查询方法,包括:

3、步骤s1:构造querywrapper构造器;

4、步骤s2:解析输入的预设基本参数并输入querywrapper构造器获取动态查询条件;

5、步骤s3:基于获取的动态查询条件获取查询结果。

6、优选地,所述querywrapper构造器采用:使用orm框架提供的querywrapper类,创建空的querywrapper对象,用于构建查询条件。

7、优选地,所述querywrapper构造器包括:查询对象属性、分页对象属性以及排序对象属性;

8、所述查询对象属性是使用querywrapper类构建满足预设条件的查询条件;

9、所述分页对象属性是通过创建page对象并提供页码和每页记录数构建分页对象,用于分页查询操作;

10、所述排序对象是使用querywrapper类的orderby方法来添加排序条件,用于指定查询结果的排序方式。

11、优选地,所述步骤s2采用:接收输入的预设基本参数,包括:表明、查询条件以及分页参数;调用解析器解析输入的预设基本参数。

12、所述调用解析器解析输入的预设基本参数包括:通过解析器判断对象类型为map,解析map key是查询关系;根据map的key获取value。

13、优选地,所述步骤s3采用:sql查询语句中使用${ew.customsqlsegment}占位符,sql查询语句中的${ew.customsqlsegment}占位符将被动态查询条件替换;mybatis plus执行最终的查询语句,并将查询结果映射为指定的实体类对象,返回查询结果。

14、根据本专利技术提供的一种基于mybatis-plus的数据动态查询系统,包括:

15、模块m1:构造querywrapper构造器;

16、模块m2:解析输入的预设基本参数并输入querywrapper构造器获取动态查询条件;

17、模块m3:基于获取的动态查询条件获取查询结果。

18、优选地,所述querywrapper构造器采用:使用orm框架提供的querywrapper类,创建空的querywrapper对象,用于构建查询条件。

19、优选地,所述querywrapper构造器包括:查询对象属性、分页对象属性以及排序对象属性;

20、所述查询对象属性是使用querywrapper类构建满足预设条件的查询条件;

21、所述分页对象属性是通过创建page对象并提供页码和每页记录数构建分页对象,用于分页查询操作;

22、所述排序对象是使用querywrapper类的orderby方法来添加排序条件,用于指定查询结果的排序方式。

23、优选地,所述模块m2采用:接收输入的预设基本参数,包括:表明、查询条件以及分页参数;调用解析器解析输入的预设基本参数。

24、所述调用解析器解析输入的预设基本参数包括:通过解析器判断对象类型为map,解析map key是查询关系;根据map的key获取value。

25、优选地,所述模块m3采用:sql查询语句中使用${ew.customsqlsegment}占位符,sql查询语句中的${ew.customsqlsegment}占位符将被动态查询条件替换;mybatis plus执行最终的查询语句,并将查询结果映射为指定的实体类对象,返回查询结果。

26、与现有技术相比,本专利技术具有如下的有益效果:

27、简化查询逻辑:使用动态查询,可以将查询逻辑集中在一个地方管理,而不是分散在各个表的查询sql中。这样可以减少代码的冗余性和复杂性,提高代码的可维护性和可读性。

28、减少维护成本:当需要修改查询逻辑时,如果每个表都有对应的查询sql,那么修改起来将非常繁琐和耗时。而动态查询可以通过修改查询条件或逻辑来实现查询逻辑的变更,避免了对每个表的查询sql进行修改,从而减少了维护成本。

29、提高代码复用性:动态查询可以根据不同的条件和需求生成不同的查询语句,从而提高代码的复用性。相比于每个表都写固定的查询sql,动态查询可以根据需要动态生成查询语句,使得代码更具通用性和灵活性。

30、动态性和灵活性:动态查询可以在运行时根据具体条件和需求生成查询语句,使得查询更加动态和灵活。相比于静态的查询sql,动态查询可以根据实际情况进行动态调整,满足不同的查询需求,提高系统的灵活性和适应性。

31、安全性和可控性:动态查询可以对查询条件进行动态验证和过滤,从而提高系统的安全性和可控性。通过对用户输入的查询条件进行检查和限制,可以有效防止sql注入等安全问题。

32、综上所述,相比于每个表都写查询sql,动态查询具有简化查询逻辑、减少维护成本、提高代码复用性、动态性和灵活性,以及提高安全性和可控性等优势。这使得动态查询成为更加高效和可维护的查询方式。

本文档来自技高网...

【技术保护点】

1.一种基于Mybatis-Plus的数据动态查询方法,其特征在于,包括:

2.根据权利要求1所述的基于Mybatis-Plus的数据动态查询方法,其特征在于,所述QueryWrapper构造器采用:使用ORM框架提供的QueryWrapper类,创建空的QueryWrapper对象,用于构建查询条件。

3.根据权利要求2所述的基于Mybatis-Plus的数据动态查询方法,其特征在于,所述QueryWrapper构造器包括:查询对象属性、分页对象属性以及排序对象属性;

4.根据权利要去1所述的基于Mybatis-Plus的数据动态查询方法,其特征在于,所述步骤S2采用:接收输入的预设基本参数,包括:表明、查询条件以及分页参数;调用解析器解析输入的预设基本参数。

5.根据权利要求1所述的基于Mybatis-Plus的数据动态查询方法,其特征在于,所述步骤S3采用:SQL查询语句中使用${ew.customSqlSegment}占位符,SQL查询语句中的${ew.customSqlSegment}占位符将被动态查询条件替换;MyBatis Plus执行最终的查询语句,并将查询结果映射为指定的实体类对象,返回查询结果。

6.一种基于Mybatis-Plus的数据动态查询系统,其特征在于,包括:

7.根据权利要求6所述的基于Mybatis-Plus的数据动态查询系统,其特征在于,所述QueryWrapper构造器采用:使用ORM框架提供的QueryWrapper类,创建空的QueryWrapper对象,用于构建查询条件。

8.根据权利要求7所述的基于Mybatis-Plus的数据动态查询系统,其特征在于,所述QueryWrapper构造器包括:查询对象属性、分页对象属性以及排序对象属性;

9.根据权利要去6所述的基于Mybatis-Plus的数据动态查询系统,其特征在于,所述模块M2采用:接收输入的预设基本参数,包括:表明、查询条件以及分页参数;调用解析器解析输入的预设基本参数。

10.根据权利要求6所述的基于Mybatis-Plus的数据动态查询系统,其特征在于,所述模块M3采用:SQL查询语句中使用${ew.customSqlSegment}占位符,SQL查询语句中的${ew.customSqlSegment}占位符将被动态查询条件替换;MyBatis Plus执行最终的查询语句,并将查询结果映射为指定的实体类对象,返回查询结果。

...

【技术特征摘要】

1.一种基于mybatis-plus的数据动态查询方法,其特征在于,包括:

2.根据权利要求1所述的基于mybatis-plus的数据动态查询方法,其特征在于,所述querywrapper构造器采用:使用orm框架提供的querywrapper类,创建空的querywrapper对象,用于构建查询条件。

3.根据权利要求2所述的基于mybatis-plus的数据动态查询方法,其特征在于,所述querywrapper构造器包括:查询对象属性、分页对象属性以及排序对象属性;

4.根据权利要去1所述的基于mybatis-plus的数据动态查询方法,其特征在于,所述步骤s2采用:接收输入的预设基本参数,包括:表明、查询条件以及分页参数;调用解析器解析输入的预设基本参数。

5.根据权利要求1所述的基于mybatis-plus的数据动态查询方法,其特征在于,所述步骤s3采用:sql查询语句中使用${ew.customsqlsegment}占位符,sql查询语句中的${ew.customsqlsegment}占位符将被动态查询条件替换;mybatis plus执行最终的查询语句,并将查询结果映射为指定的实体类对象,返回查询结果。

...

【专利技术属性】
技术研发人员:张文龙陈志强
申请(专利权)人:上海秉玉软件技术服务有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1