[发明专利]一种自动生成SQL语句的方法和装置有效
申请号: | 201810631425.0 | 申请日: | 2018-06-19 |
公开(公告)号: | CN108846101B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 詹奇 | 申请(专利权)人: | 艾普阳科技(深圳)有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518000 广东省深圳市南山区粤海*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动 生成 sql 语句 方法 装置 | ||
1.一种自动生成SQL语句的方法,其特征在于,包括:
根据用户输入的预设编程接口指令确定与数据库中目标数据表相对应的数据模型,在确定数据模型之前,用户预先会用C#语言将特定标注设置在数据模型和/或数据模型的属性上;其中,所述数据模型中包括特定标注,所述特定标注用于确定所述数据模型与所述目标数据表的对应关系和表征生成标准格式的SQL语句的必要参数;
调用所述预设编程接口指令中所对应的预设编程接口将所述数据模型中的特定标记使用预设生成规则生成标准格式的SQL语句;其中,所述标准格式的SQL语句中的各个部分与所述特定标注具有对应关系,使得开发人员直接调整特定标注来实现对标准格式的SQL语句的调整和控制,便于复杂SQL语句性能的调整和优化;
其中,在确定数据模型之前,用户预先会用C#语言将特定标注设置在数据模型和/或数据模型的属性上,具体包括:
定义一个数据模型与数据库的目标数据表相对应;
如果数据模型的名字与目标数据表的名字相同,则该数据模型会与在数据库中查找与其名字相同的目标数据表,将其作为关联对象,使得数据模型与目标数据表自动对应;
如果不同,则在数据模型上添加一个特定标注,该特定标注为用于确定所述目标数据表的第一模型标注,用于使得该数据模型与目标数据表具有对应关系;
如果数据模型的属性的名字与目标数据表的列的名字相同,则数据模型的属性会在目标数据表的数据列中查找命名相同的数据列,自动与该数据列自动对应;
如果不同,则在数据模型的属性中添加一个特定标注,该特定标注为用于将所述目标数据表与其他数据表进行关联的第二模型标注,使得该数据模型的属性与目标数据表的列相对应;
在数据模型中添加另一个特定标注,该特定标注为用于表征查询参数的第三模型标注,用于确定查询参数的名字以及查询参数与目标数据表的数据列的对应关系;
在数据模型上添加又一个特定标注,该特定标注为用于表征查询条件的第四模型标注,或者于表征以合计方式作为查询条件的第六模型标注,使得该第四模型标注确定目标数据表的数据列以及该数据列与查询参数的关系;
在特定标注中引用数据模型属性的方式具体为:在$后加上数据模型属性名称可引用模型属性。
2.根据权利要求1所述的方法,其特征在于,还包括:
执行所述标准格式的SQL语句,得到结果集;
根据所述结果集中的各个结果绑定与各个所述结果对应的数据模型。
3.根据权利要求2所述的方法,其特征在于,所述特定标注包括模型标注和/或模型属性标注;
其中,所述模型标注用于将确定所述数据库中的目标数据表,所述模型属性标注用于确定所述目标数据表中的目标数据列。
4.根据权利要求3所述的方法,其特征在于,所述模型标注还包括:
用于对结果进行分组的第五模型标注;
用于使用字段排序方式对结果进行排序的第七模型标注;
用于执行联合查询的第八模型标注;
用于使用子查询的第九模型标注。
5.根据权利要求3所述的方法,其特征在于,所述模型属性标注具体包括:
用于确定所述目标数据表中目标数据列的第一模型属性标注;
用于生成合计统计的第二模型属性标注。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述预设编程接口以及所述预设生成规则预先设置在MVC架构中的标准类库中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于艾普阳科技(深圳)有限公司,未经艾普阳科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810631425.0/1.html,转载请声明来源钻瓜专利网。