System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据查询,具体地,涉及基于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框架提供的q
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}占位符将被动态查询条件替换;MyBat
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执行最终的查询语句,并将查询结果映射为指定的实体类对象,返回查询结果。
...【专利技术属性】
技术研发人员:张文龙,陈志强,
申请(专利权)人:上海秉玉软件技术服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。