MyBatis应用程序的SQL提取方法及装置制造方法及图纸

技术编号:26375762 阅读:27 留言:0更新日期:2020-11-19 23:44
本发明专利技术提供的一种MyBatis应用程序的SQL提取方法及装置,可用于信息安全技术领域,通过在已设置埋点应用的MyBatis应用程序在加载一加载类之前和之后,均链式执行所述埋点应用的预设拦截链中的埋点逻辑,进而加载修改后的所述加载类;然后运行添加埋点应用的MyBatis应用程序,替换所述MyBatis应用程序的映射文件中非预编译动态传入的参数,得到最终的映射文件;最后对所述映射文件进行解析得到MyBatis应用程序的SQL语句,从而在保证映射文件中的sql完整性的同时,可以追溯至相应的程序,便于后期的修改。

【技术实现步骤摘要】
MyBatis应用程序的SQL提取方法及装置
本专利技术涉及程序
,尤其涉及一种MyBatis应用程序的SQL提取方法及装置。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。在目前Mybatis项目开发过程中,由于项目大,一般是多人合作开发模式,在开发过程中对于数据库的访问和数据的增删查改除了小工程采用注解的方式之外,通常都是采用映射文件的方式,对于动态传值的方式,有两种,一种是通过绑定变量对字符串进行动态传入,另一种是DBMS,在应用预编译阶段会把参数部分用一个占位符?替代。目前对sql语句进行静态扫描前提是需要有完整的sql语句,一般可以通过查询日志对sql语句进行提取,然后解析、分析,一种是利用对映射文件的解析进行sql提取。但是通过查询日志提取sql语句,如果扫描出违例或者有问题的sql无法追溯到相应的程序提供给相应的程序员进行修改。而通过解析映射文件进行sql提取,对于通过程序进行动态传入的sql则无法获取完整的sql,这样得到的扫描结果本文档来自技高网...

【技术保护点】
1.一种MyBatis应用程序的SQL提取方法,其特征在于,包括:/n在已设置埋点应用的MyBatis应用程序在加载一加载类之前和之后,均链式执行所述埋点应用的预设拦截链中的埋点逻辑,进而加载修改后的所述加载类;/n运行添加埋点应用的MyBatis应用程序,替换所述MyBatis应用程序的映射文件中非预编译动态传入的参数,得到最终的映射文件;/n对所述映射文件进行解析得到MyBatis应用程序的SQL语句。/n

【技术特征摘要】
1.一种MyBatis应用程序的SQL提取方法,其特征在于,包括:
在已设置埋点应用的MyBatis应用程序在加载一加载类之前和之后,均链式执行所述埋点应用的预设拦截链中的埋点逻辑,进而加载修改后的所述加载类;
运行添加埋点应用的MyBatis应用程序,替换所述MyBatis应用程序的映射文件中非预编译动态传入的参数,得到最终的映射文件;
对所述映射文件进行解析得到MyBatis应用程序的SQL语句。


2.根据权利要求1所述的SQL提取方法,其特征在于,还包括:
复制MyBatis应用程序的完整映射文件,并记录以非预编译动态传入的映射文件、对应的映射对象标识和传入对象。


3.根据权利要求1所述的SQL提取方法,其特征在于,还包括:
定义方法拦截器,在被拦截的方法的执行前和执行后嵌入埋点逻辑,进而在对象调用被拦截的方法时,将在被拦截的方法执行之前和之后均链式执行预设拦截链中的埋点逻辑;
定义实现所述埋点应用的启动类,以使虚拟机在加载各种类之前会将方法拦截器的拦截方法嵌入到被拦截的类中,然后加载修改后的所述加载类。


4.根据权利要求3所述的SQL提取方法,其特征在于,所述定义实现所述埋点应用的启动类,包括:
通过javaagent选项提供启动参数;
创建Java虚拟机监控接口的实例。


5.根据权利要求1所述的SQL提取方法,其特征在于,在已设置埋点应用的MyBatis应用程序在加载一加载类之前和之后,均链式执行所述埋点应用的预设拦截链中的埋点逻辑,包括:
在埋点应用中添加定义与设定压缩包相关数据的清单文件,设置其预启动类项为启动类的名称;
将当前埋点应用编译并且打包成压缩包;
在需要埋点的MyBatis应用程序的启动脚本中添加该压缩包的运行命令。


6.一种MyBatis应用程序的SQL提取装置,其特征在于,包括:
埋点逻辑执行模块,在已设置埋点应用的MyBatis应用程序在加载一加载类之前和之后,均链式执行所述埋点应用的预设拦截链中的埋点逻辑...

【专利技术属性】
技术研发人员:黄琼暨光耀张晓娜文幸亮
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1