System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库领域,更具体的说,是涉及sql语句生成方法、装置、服务器及介质。
技术介绍
1、数据库中存储有多个表格,在从数据库中查询表格中的数据时,需要构建sql(structured query language,结构化查询语言)语句。
2、若不同用户的需求相同,存在不同用户之间重复多次构建相同sql语句的情况,效率低下。
技术实现思路
1、有鉴于此,本申请提供了一种sql语句生成方法、装置、服务器及介质。
2、为实现上述目的,本申请提供如下技术方案:
3、根据本公开实施例的第一方面,提供一种sql语句生成方法,包括:
4、确定登录数据库的目标用户账号;
5、从预设的用户账号与用户权限的对应关系中,查找所述目标用户账号对应的目标用户权限;
6、获取输入的第一结构化查询语言sql语句,所述第一sql语句包括目标操作类型以及目标表名,所述目标操作类型表征针对具有所述目标表名的表操作行为的类型;
7、从预设的表名、用户权限、操作类型、操作字段和操作条件的对应关系中,查找所述目标表名、所述目标用户权限以及所述目标操作类型对应的目标操作字段和目标操作条件;
8、获取所述第一sql语句的抽象语法树ast;
9、确定所述目标操作字段为所述ast的字段关键词节点的子节点;
10、确定所述目标操作条件为所述ast的where条件节点的子节点,以得到更新后的ast;
12、执行所述第二sql语句,得到执行结果。
13、根据本公开实施例的第二方面,提供一种sql语句生成装置,包括:
14、第一确定模块,用于确定登录数据库的目标用户账号;
15、第一查找模块,用于从预设的用户账号与用户权限的对应关系中,查找所述目标用户账号对应的目标用户权限;
16、第一获取模块,用于获取输入的第一结构化查询语言sql语句,所述第一sql语句包括目标操作类型以及目标表名,所述目标操作类型表征针对具有所述目标表名的表操作行为的类型;
17、第二查找模块,用于从预设的表名、用户权限、操作类型、操作字段和操作条件的对应关系中,查找所述目标表名、所述目标用户权限以及所述目标操作类型对应的目标操作字段和目标操作条件;
18、第二获取模块,用于获取所述第一sql语句的抽象语法树ast;
19、第一确定模块,用于确定所述目标操作字段为所述ast的字段关键词节点的子节点;
20、第二确定模块,用于确定所述目标操作条件为所述ast的where条件节点的子节点,以得到更新后的ast;
21、第三获取模块,用于基于更新后的ast得到第二sql语句;
22、执行模块,用于执行所述第二sql语句,得到执行结果。
23、根据本公开实施例的第三方面,提供一种服务器,包括:
24、处理器;
25、用于存储所述处理器可执行指令的存储器;
26、其中,所述处理器被配置为执行所述指令,以实现如第一方面所述sql语句生成方法。
27、根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述sql语句生成方法。
28、经由上述的技术方案可知,本申请提供了一种sql语句生成方法,确定登录数据库的目标用户账号;从预设的用户账号与用户权限的对应关系中,查找目标用户账号对应的目标用户权限;获取输入的第一sql语句,第一sql语句包括目标操作类型以及目标表名;从预设的表名、用户权限、操作类型、操作字段和操作条件的对应关系中,查找目标表名、目标用户权限以及目标操作类型对应的目标操作字段和目标操作条件;获取第一sql语句的抽象语法树ast;确定目标操作字段为ast的字段关键词节点的子节点;确定目标操作条件为ast的where条件节点的子节点,以得到更新后的ast;基于更新后的ast得到第二sql语句;执行第二sql语句,得到执行结果。对于用户而言,无需人为编辑复杂的第二sql语句,降低了编辑sql语句的复杂度,提高了效率。
本文档来自技高网...【技术保护点】
1.一种SQL语句生成方法,其特征在于,包括:
2.根据权利要求1所述SQL语句生成方法,其特征在于,针对每一表名、每一用户权限以及每一操作类型,获取所述表名、所述用户权限以及所述操作类型对应的操作字段和操作条件的对应关系的方法包括:
3.根据权利要求2所述SQL语句生成方法,其特征在于,所述从所述目标字段中筛选得到所述表名、所述用户权限以及所述操作类型对应的所述操作字段步骤,包括:
4.根据权利要求2所述SQL语句生成方法,其特征在于,所述通过所述目标记录确定所述表名、所述用户权限以及所述操作类型对应的所述操作条件步骤,包括:
5.一种SQL语句生成装置,其特征在于,包括:
6.根据权利要求5所述SQL语句生成装置,其特征在于,针对每一表名、每一用户权限以及每一操作类型,还包括:
7.根据权利要求6所述SQL语句生成装置,其特征在于,所述筛选模块包括:
8.根据权利要求6所述SQL语句生成装置,其特征在于,所述第四确定模块包括:
9.一种服务器,其特征在于,包括:
10.
...【技术特征摘要】
1.一种sql语句生成方法,其特征在于,包括:
2.根据权利要求1所述sql语句生成方法,其特征在于,针对每一表名、每一用户权限以及每一操作类型,获取所述表名、所述用户权限以及所述操作类型对应的操作字段和操作条件的对应关系的方法包括:
3.根据权利要求2所述sql语句生成方法,其特征在于,所述从所述目标字段中筛选得到所述表名、所述用户权限以及所述操作类型对应的所述操作字段步骤,包括:
4.根据权利要求2所述sql语句生成方法,其特征在于,所述通过所述目标记录确定所述表名、所述用户权限以及所述操作类型对应的所述操作条件步骤,包括:...
【专利技术属性】
技术研发人员:曾庆伟,
申请(专利权)人:中银金融科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。