[发明专利]一种基于在请求参数上添加注解拼接成SQL的查询方法在审
申请号: | 202010607592.9 | 申请日: | 2020-06-30 |
公开(公告)号: | CN111782195A | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 李楠;叶亮钦;黃凌壮 | 申请(专利权)人: | 广州云徙科技有限公司 |
主分类号: | G06F8/33 | 分类号: | G06F8/33;G06F16/242 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 雷芬芬 |
地址: | 510700 广东省广州市黄*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 请求 参数 添加 注解 拼接 sql 查询 方法 | ||
本发明公开了一种基于在请求参数上添加注解拼接成SQL的查询方法,S1,基于简化WHERE条件的编写原则对注解进行定义;S2,在请求参数添加定义后的注解,并设定对应查询条件的数据库字段及条件操作;S3,将带有注解及查询输入值的请求参数输入注解解析引擎,注解解析引擎会从每个请求参数的注解中获取WHRER条件;S4,使用所述WHRER条件进行SQL查询。本发明通过定义一个简化WHERE条件的编写规范注解;在请求参数上使用定义的注解,达到配置WHERE条件的效果,实现对底层的封装;使得业务开发更加方便,开发效率更高,产生漏洞的风险更小。
技术领域
本发明涉及软件开发信息技术领域,具体涉及一种基于在请求参数上添加注解拼接成SQL的查询方法。
背景技术
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
目前开发过程中SQL拼写一般在mybatis(一款持久层框架)的映射文件中通过where标签下进行人工拼接。如下代码所示,使用if/foreach等标签对条件参数做逻辑判断和执行,SQL语句使用字符串拼接。
如上展示的代码冗长,由于根据前端参数转化为SQL条件不能全自动化生成,不好编写,较难做语法检查,造成手工拼写开发量大、开发效率低和容易拼写错误而产生漏洞等缺点。比如少写条件连接关键字and导致SQL语法错误,加之有if判断,导致非针对性测试测试不出这个漏洞。
发明内容
本发明的目的是为了克服以上现有技术存在的不足,提供了一种业务开发更加方便,开发效率更高的基于在请求参数上添加注解拼接成SQL的查询方法。
本发明的目的通过以下的技术方案实现:
一种基于在请求参数上添加注解拼接成SQL的查询方法,包括:
S1,基于简化WHERE条件的编写原则对注解进行定义;
S2,在请求参数添加定义后的注解,并设定对应查询条件的数据库字段及条件操作;其中注解、查询条件的数据库字段及条件操作拼接成数据库查询语句;
S3,将带有注解及查询输入值的请求参数输入注解解析引擎,注解解析引擎会从每个请求参数的注解中获取WHRER条件;
S4,使用所述WHRER条件进行SQL查询。
优选地,在步骤S1中,定义后的注解包括:WHERE条件数据库字段、WHERE条件操作和是否可以为空值,其中WHERE条件数据库字段为WHRER条件的左边部分,为条件查询的对应的数据库字段;WHERE条件操作为WHRER条件的中间部分,是否可以为空值为WHRER条件的右边部分。
优选地,所述WHERE条件操作为“=”、“”、“”和“in”中的任意一种。
优选地,在步骤S2中请求参数是对应网站交互页面中的查询条件输入值的接收对象,每个查询条件的输入值会赋值到请求参数的对应属性值上,所述每个查询条件的输入值为对应查询条件的具体的数据库字段及条件操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州云徙科技有限公司,未经广州云徙科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010607592.9/2.html,转载请声明来源钻瓜专利网。