System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种SQL模糊查询方法、设备及存储介质技术_技高网

一种SQL模糊查询方法、设备及存储介质技术

技术编号:41075057 阅读:5 留言:0更新日期:2024-04-24 11:32
本申请公开了一种SQL模糊查询方法、设备及存储介质,该方法通过接收用户输入的第一SQL查询语句,判断其中是否包含预设置的第一关键字。如果包含第一关键字,则获取与第一关键字对应的匹配条件字段,并判断是否需要进行特殊字符转义处理。如果有需要进行转义处理的特殊字符,则通过转义处理得到相应的转义字符,并使用这些转义字符替换原始查询语句中的特殊字符,从而生成第二SQL查询语句。最后,执行第二SQL查询语句对数据库进行查询。至少解决了现有MyBatis‑Plus在处理包含特殊字符的模糊查询时精确度较差的问题。

【技术实现步骤摘要】

本申请涉及互联网,尤其涉及一种sql模糊查询方法、设备及存储介质。


技术介绍

1、mybatis 是一款持久层框架,它支持定制化 sql、存储过程以及高级映射。mybatis 避免了几乎所有的 jdbc 代码和手动设置参数以及获取结果集。mybatis 可以使用简单的 xml 或注解来配置和映射原生信息,将接口和 java 的 pojos(plain ordinaryjava object,普通的 java对象)映射成数据库中的记录。mybatis-plus是一个致力于简化开发过程和提高效率的mybatis增强工具。它并没有改变mybatis的原生特性,而是在其基础上进行了增强。这种增强主要包括对一些常用数据库操作的封装。通过使用mybatis-plus,开发人员可以减少重复的配置和代码编写工作,极大地提升了工作效率。

2、现有技术中的限制主要体现在 mybatis-plus 框架在模糊查询方面的局限性。具体而言,该框架对包含百分号、下划线等特殊字符的模糊查询表现出相对较差的精确性。


技术实现思路

1、本专利技术提供了一种sql模糊查询方法、设备及存储介质,提供了一种自动优化sql语句的方案,至少解决了现有mybatis-plus在处理包含特殊字符的模糊查询时精确度较差的问题。

2、一方面,提供一种sql模糊查询方法,用于mybatis框架,包括:

3、接收用户输入的第一sql查询语句;

4、根据预设置的至少一个第一关键字,判断所述第一sql查询语句中是否包含所述第一关键字;

5、当所述第一sql查询语句中包含所述第一关键字时,根据所述第一sql查询语句的结构,获取与所述第一关键字对应的至少一个第一匹配条件字段;

6、根据所述第一匹配条件字段,判断所述第一匹配条件字段中是否存在特殊字符需要进行转义处理;

7、当所述第一匹配条件字段中存在特殊字符需要进行转义处理时,将需要进行转义处理的特殊字符通过转义处理得到转义字符;

8、使用所述转义字符替换所述第一sql查询语句中的特殊字符后得到第二sql查询语句,并执行所述第二sql查询语句,对数据库进行查询。

9、所述接收用户输入的第一sql查询语句之前,还包括:

10、创建第一拦截器;

11、在所述第一拦截器中设置的 innerinterceptor 接口;

12、所述接收用户输入的第一sql查询语句的方法,包括:

13、通过所述innerinterceptor 接口接收用户输入的第一sql查询语句。

14、所述根据预设置的至少一个第一关键字,判断所述第一sql查询语句中是否包含所述第一关键字之后,还包括:

15、当所述第一sql查询语句中不包含所述第一关键字时,执行所述第一sql查询语句,对数据库进行查询;

16、所述sql模糊查询方法,还包括:

17、通过所述第一拦截器通过在所述第一sql查询语句执行前调用executor接口的方法,对所述第一sql查询语句进行拦截。

18、还包括:

19、通过@intercepts注解标识所述第一拦截器;

20、通过@signature注解指明所述第一拦截器拦截的类型和方法。

21、所述当所述第一sql查询语句中包含所述第一关键字时,还包括获取与所述第一关键字对应的至少一个第一参数名;

22、所述根据所述第一匹配条件字段,判断所述第一匹配条件字段中是否存在特殊字符需要进行转义处理,还包括:

23、根据所述第一参数名,获得与所述第一参数名对应的第一转义列表;

24、判断所述第一匹配条件字段中是否存在所述第一转义列表上的第一字段;

25、若存在,则所述第一字段中的特殊字符需要进行转义处理。

26、所述根据所述第一匹配条件字段,判断所述第一匹配条件字段中是否存在特殊字符需要进行转义处理,还包括:

27、根据所述第一参数名,获得与所述第一参数名对应的第一约束条件;

28、判断所述第一匹配条件字段中是否存在满足所述第一约束条件的第二字段;

29、若存在,则所述第二字段中的特殊字符需要进行转义处理。

30、所述将需要进行转义处理的特殊字符通过转义处理得到转义字符,包括:

31、判断所述第一sql查询语句的种类;

32、根据所述第一sql查询语句的种类,将需要进行转义处理的特殊字符通过转义处理得到转义字符;所述第一sql查询语句的种类包括:条件构造器产生的模糊查询语句、手动拼接的模糊查询语句和mapper注解sql中的模糊查询语句中的至少一种。

33、所述使用所述转义字符替换所述第一sql查询语句中的特殊字符后得到第二sql查询语句,包括:

34、通过beforequery方法,将所述第一sql查询语句中的特殊字符替换为所述转义字符,得到第二sql查询语句。

35、再一方面,一种计算机设备,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现上述方法。

36、再一方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现上述方法。

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

38、本专利技术一种sql模糊查询方法、设备及存储介质,该方法通过接收用户输入的第一sql查询语句,判断其中是否包含预设置的第一关键字。如果包含第一关键字,则获取与第一关键字对应的匹配条件字段,并判断是否需要进行特殊字符转义处理。如果有需要进行转义处理的特殊字符,则通过转义处理得到相应的转义字符,并使用这些转义字符替换原始查询语句中的特殊字符,从而生成第二sql查询语句。最后,执行第二sql查询语句对数据库进行查询。至少解决了现有mybatis-plus在处理包含特殊字符的模糊查询时精确度较差的问题。

本文档来自技高网...

【技术保护点】

1.一种SQL模糊查询方法,其特征在于,用于MyBatis框架,包括:

2.根据权利要求1所述的一种SQL模糊查询方法,其特征在于,所述接收用户输入的第一SQL查询语句之前,还包括:

3.根据权利要求2所述的一种SQL模糊查询方法,其特征在于,所述根据预设置的至少一个第一关键字,判断所述第一SQL查询语句中是否包含所述第一关键字之后,还包括:

4.根据权利要求3所述的一种SQL模糊查询方法,其特征在于,还包括:

5.根据权利要求1所述的一种SQL模糊查询方法,其特征在于,所述当所述第一SQL查询语句中包含所述第一关键字时,还包括获取与所述第一关键字对应的至少一个第一参数名;

6.根据权利要求5所述的一种SQL模糊查询方法,其特征在于,所述根据所述第一匹配条件字段,判断所述第一匹配条件字段中是否存在特殊字符需要进行转义处理,还包括:

7.根据权利要求1所述的一种SQL模糊查询方法,其特征在于,所述将需要进行转义处理的特殊字符通过转义处理得到转义字符,包括:

8.根据权利要求1所述的一种SQL模糊查询方法,其特征在于,所述使用所述转义字符替换所述第一SQL查询语句中的特殊字符后得到第二SQL查询语句,包括:

9.一种计算机设备,其特征在于,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现根据权利要求1-8中任一项所述的方法。

10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现根据权利要求1-8中任一项所述的方法。

...

【技术特征摘要】

1.一种sql模糊查询方法,其特征在于,用于mybatis框架,包括:

2.根据权利要求1所述的一种sql模糊查询方法,其特征在于,所述接收用户输入的第一sql查询语句之前,还包括:

3.根据权利要求2所述的一种sql模糊查询方法,其特征在于,所述根据预设置的至少一个第一关键字,判断所述第一sql查询语句中是否包含所述第一关键字之后,还包括:

4.根据权利要求3所述的一种sql模糊查询方法,其特征在于,还包括:

5.根据权利要求1所述的一种sql模糊查询方法,其特征在于,所述当所述第一sql查询语句中包含所述第一关键字时,还包括获取与所述第一关键字对应的至少一个第一参数名;

6.根据权利要求5所述的一种sql模糊查询方法,其特征在于,所述根据所述第一...

【专利技术属性】
技术研发人员:苏德财李炯曹茜王汉瑛
申请(专利权)人:成都虚谷伟业科技有限公司
类型:发明
国别省市:

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

1