本发明专利技术提供了一种基于配置的底层通用查询方法和系统,包括:步骤1:构建sql池,构建要素包括sql存储介质、对sql增删查改的管理页面、执行sql的管理页面,所述sql池用于集中存放查询使用的sql语句;步骤2:开发通用查询方式,查询使用参数包括sql的id及sql占位符对应的参数;步骤3:将步骤2的查询方式进行封装,格式为jar;步骤4:对sql池进行治理,包括自动化审查和智能预警。本发明专利技术简化开发,提升工作效率,对sql进行集中管理,降低了开发成本,提升了系统维护效率。了系统维护效率。了系统维护效率。
【技术实现步骤摘要】
基于配置的底层通用查询方法和系统
[0001]本专利技术涉及数据查询
,具体地,涉及一种基于配置的底层通用查询方法和系统。
技术介绍
[0002]系统开发过程中,通常会涉及到不少自定义的sql(数据库结构化查询语句),每次新增一条sql,都需要去添加操作这条sql的代码,导致大量类似的工作;另外所有sql都放在代码工程中,让sql审查成为困难事项,大量不合规sql在没有得到DBA的评审就上线到生产使用,让数据库压力倍增,大量慢sql也在上线后才能发现,倘若系统活跃用户较多,数据库将很快被拖垮。
[0003]专利文献CN110019350A(申请号:CN201710631092.7)公开了基于配置信息的数据查询方法和装置,涉及计算机
该方法的一具体实施方式包括:基于统一的服务框架接收应用系统的查询请求;查询请求包括:查询参数,以及唯一性地指向应用系统对应的目标数据库的指标标识ID;依据指标ID获取配置信息;配置信息包括:查询语句模板;依据查询参数和查询语句模板动态生成可执行查询语句;根据可执行查询语句获取查询结果。
技术实现思路
[0004]针对现有技术中的缺陷,本专利技术的目的是提供一种基于配置的底层通用查询方法和系统。
[0005]根据本专利技术提供的基于配置的底层通用查询方法,包括:
[0006]步骤1:构建sql池,构建要素包括sql存储介质、对sql增删查改的管理页面、执行sql的管理页面,所述sql池用于集中存放查询使用的sql语句;
[0007]步骤2:开发通用查询方式,查询使用参数包括sql的id及sql占位符对应的参数;
[0008]步骤3:将步骤2的查询方式进行封装,格式为jar;
[0009]步骤4:对sql池进行治理,包括自动化审查和智能预警。
[0010]优选的,所述步骤1包括:
[0011]步骤1.1:每条存储的sql配有唯一标识id;
[0012]步骤1.2:每条sql语句的参数用问号占位符代替,可加入标签字符,用来支持动态拼接sql;
[0013]步骤1.3:开发管理页面用来操作sql的存储、修改及删除;
[0014]步骤1.4:开发管理页面用来执行sql,在页面设置参数及配置数据库地址。
[0015]优选的,所述步骤2包括:
[0016]步骤2.1:配置数据库链接池,从数据库链接池中获取对应链接;
[0017]步骤2.2:根据传入的id,从sql池中获取指定id的sql;
[0018]步骤2.3:根据id将sql缓存,同时设置时效;
[0019]步骤2.4:根据参数解析sql语句中用来支持动态拼接的标签;
[0020]步骤2.5:采用PreparedStatement预编译sql语句;
[0021]步骤2.6:将查询方式中传入的sql参数传到PreparedStatement对象;
[0022]步骤2.7:调用executeQuery方法执行sql,获取返回的数据;
[0023]步骤2.8:将执行时间和执行频次缓存,每隔一小时上报执行时间和频率数据到sql治理系统;
[0024]步骤2.9:对所有sql进行表级或者字段级的数据权限管理。
[0025]优选的,所述步骤4包括:
[0026]步骤4.1:开发sql管理平台,从sql池中获取数据;
[0027]步骤4.2:进行自动化审查,定期对所有sql获取执行计划信息,分析索引是否正确利用,并将结果保存;
[0028]步骤4.3:进行智能预警,当扫描到sql有执行失败或者未正确使用索引时发出邮件预警,当某个sql执行频率过高或者执行时间过长到超过阈值时,同样邮件警告。
[0029]优选的,每一批sql到上线生产前,组织相关人员对sql进行审查,当发现sql语句存在错误或需要优化时,通过修改sql池指定的sql,达到不用发版即生效的目的;当发现修改sql后发现异常或收到邮件预警时,可快速回退到之前版本。
[0030]根据本专利技术提供的基于配置的底层通用查询系统,包括:
[0031]模块M1:构建sql池,构建要素包括sql存储介质、对sql增删查改的管理页面、执行sql的管理页面,所述sql池用于集中存放查询使用的sql语句;
[0032]模块M2:开发通用查询方式,查询使用参数包括sql的id及sql占位符对应的参数;
[0033]模块M3:将模块M2的查询方式进行封装,格式为jar;
[0034]模块M4:对sql池进行治理,包括自动化审查和智能预警。
[0035]优选的,所述模块M1包括:
[0036]模块M1.1:每条存储的sql配有唯一标识id;
[0037]模块M1.2:每条sql语句的参数用问号占位符代替,可加入标签字符,用来支持动态拼接sql;
[0038]模块M1.3:开发管理页面用来操作sql的存储、修改及删除;
[0039]模块M1.4:开发管理页面用来执行sql,在页面设置参数及配置数据库地址。
[0040]优选的,所述模块M2包括:
[0041]模块M2.1:配置数据库链接池,从数据库链接池中获取对应链接;
[0042]模块M2.2:根据传入的id,从sql池中获取指定id的sql;
[0043]模块M2.3:根据id将sql缓存,同时设置时效;
[0044]模块M2.4:根据参数解析sql语句中用来支持动态拼接的标签;
[0045]模块M2.5:采用PreparedStatement预编译sql语句;
[0046]模块M2.6:将查询方式中传入的sql参数传到PreparedStatement对象;
[0047]模块M2.7:调用executeQuery方法执行sql,获取返回的数据;
[0048]模块M2.8:将执行时间和执行频次缓存,每隔一小时上报执行时间和频率数据到sql治理系统;
[0049]模块M2.9:对所有sql进行表级或者字段级的数据权限管理。
[0050]优选的,所述模块M4包括:
[0051]模块M4.1:开发sql管理平台,从sql池中获取数据;
[0052]模块M4.2:进行自动化审查,定期对所有sql获取执行计划信息,分析索引是否正确利用,并将结果保存;
[0053]模块M4.3:进行智能预警,当扫描到sql有执行失败或者未正确使用索引时发出邮件预警,当某个sql执行频率过高或者执行时间过长到超过阈值时,同样邮件警告。
[0054]优选的,每一批sql到上线生产前,组织相关人员对sql进行审查,当发现sql语句存在错误或需要优化时,通过修改sql池指定的sql,达到不用发版即生效的目的;当发现修改sql后发现异常或收到邮件预警时,可快速回退到之前版本。
[0055]与现有技术相比,本专利技术具有如下的本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于配置的底层通用查询方法,其特征在于,包括:步骤1:构建sql池,构建要素包括sql存储介质、对sql增删查改的管理页面、执行sql的管理页面,所述sql池用于集中存放查询使用的sql语句;步骤2:开发通用查询方式,查询使用参数包括sql的id及sql占位符对应的参数;步骤3:将步骤2的查询方式进行封装,格式为jar;步骤4:对sql池进行治理,包括自动化审查和智能预警。2.根据权利要求1所述的基于配置的底层通用查询方法,其特征在于,所述步骤1包括:步骤1.1:每条存储的sql配有唯一标识id;步骤1.2:每条sql语句的参数用问号占位符代替,可加入标签字符,用来支持动态拼接sql;步骤1.3:开发管理页面用来操作sql的存储、修改及删除;步骤1.4:开发管理页面用来执行sql,在页面设置参数及配置数据库地址。3.根据权利要求1所述的基于配置的底层通用查询方法,其特征在于,所述步骤2包括:步骤2.1:配置数据库链接池,从数据库链接池中获取对应链接;步骤2.2:根据传入的id,从sql池中获取指定id的sql;步骤2.3:根据id将sql缓存,同时设置时效;步骤2.4:根据参数解析sql语句中用来支持动态拼接的标签;步骤2.5:采用PreparedStatement预编译sql语句;步骤2.6:将查询方式中传入的sql参数传到PreparedStatement对象;步骤2.7:调用executeQuery方法执行sql,获取返回的数据;步骤2.8:将执行时间和执行频次缓存,每隔一小时上报执行时间和频率数据到sql治理系统;步骤2.9:对所有sql进行表级或者字段级的数据权限管理。4.根据权利要求1所述的基于配置的底层通用查询方法,其特征在于,所述步骤4包括:步骤4.1:开发sql管理平台,从sql池中获取数据;步骤4.2:进行自动化审查,定期对所有sql获取执行计划信息,分析索引是否正确利用,并将结果保存;步骤4.3:进行智能预警,当扫描到sql有执行失败或者未正确使用索引时发出邮件预警,当某个sql执行频率过高或者执行时间过长到超过阈值时,同样邮件警告。5.根据权利要求4所述的基于配置的底层通用查询方法,其特征在于,每一批sql到上线生产前,组织相关人员对sql进行审查,当发现sql语句存在错误或需要优化时,通过修改sql池指定的sql,达到不用发版即生效的目的;当发现修改sql后发现异常或收到邮件预警时,可快速回退到之前版本。6.一种基于配置的底层通用查询系统,其...
【专利技术属性】
技术研发人员:周毅明,
申请(专利权)人:兴业数字金融服务上海股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。