掌桥专利:专业的专利平台
掌桥专利
首页

SQL语句检查方法及装置

文献发布时间:2023-06-19 12:13:22


SQL语句检查方法及装置

技术领域

本发明涉及SQL检查技术领域,尤指一种SQL语句检查方法及装置。

背景技术

数据库管理系统是操纵和管理数据库的大型软件,在任何平台、系统中都是必不可少的,它提供的数据操作语言DML(Data Manipulation Language)可供用户对数据进行增删查改等操作。尤其是在分布式系统和大型应用中,数据量大,涉及的表多,对于数据的操作更为频繁且逻辑复杂,所以对于数据操作sql语句的编写要求更高,不同的sql语句,消耗的时间可能有很大的差别,执行sql导致全表扫描也是目前遇到的超时、宕机等问题的原因之一,所以检索出不匹配索引导致全表扫描的sql极其重要。

目前,对于无法匹配索引的sql检查方法有静态代码扫描和动态监控系统,静态代码扫描对于sql语句、参数的多样性适应性不高,动态监控系统通过时间、内存消耗等维度进行分析存在一定的误报,在测试环境中对于数据量较少的表无法准确定位出来。而对于实际的中大型规范项目,企业往往会将涉及的日志规范的存储至相应的文件,比如对于涉及数据操作的sql语句,会统一存储至某一sql日志文件,并且对于外传的参数会将数据类型一并打印。

发明内容

针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种SQL语句检查方法及装置,实现提高SQL语句检查的完整性和准确性。

为了实现上述目的,本发明实施例提供一种SQL语句检查方法,所述方法包括:

获取应用日志文件,并对所述应用日志文件进行语句提取,得到文本数据;其中,所述文本数据包括文本语句及传入参数;

根据所述文本语句及所述传入参数,得到所述文本语句对应的数据信息,并将所述文本语句对应的数据信息输入至预先建立的预测模型中,得到所述文本语句对应的语句预测结果;

若所述语句预测结果为SQL语句,则根据对应的文本语句及传入参数生成完整SQL语句;

获取所述完整SQL语句对应的执行计划结果,并根据所述语句预测结果及所述完整SQL语句对应的执行计划结果,生成语句检查结果。

可选的,在本发明一实施例中,所述根据所述文本语句及所述传入参数,得到所述文本语句对应的数据信息包括:

对所述文本语句及所述传入参数进行预处理;其中,所述预处理包括文本填充及格式转换;

根据预设的字典,对预处理后的文本语句及传入参数进行文本转换,得到所述文本语句对应的数据信息。

可选的,在本发明一实施例中,所述预测模型是通过如下方式建立的:

获取历史日志文件及其对应的预测结果,对所述历史日志文件进行语句提取,得到历史数据;其中,所述历史数据包括历史语句及历史参数;

根据所述历史语句及所述历史参数,得到所述历史语句对应的历史数据信息,并根据所述历史日志文件对应的预测结果与所述历史数据信息得到训练样本;

利用所述训练样本,对初始卷积神经网络模型进行训练,得到所述预测模型。

可选的,在本发明一实施例中,所述方法还包括:

根据所述语句预测结果对所述应用日志文件进行语句归类;其中,所述语句预测结果还包括非SQL语句。

本发明实施例还提供一种SQL语句检查装置,所述装置包括:

语句提取模块,用于获取应用日志文件,并对所述应用日志文件进行语句提取,得到文本数据;其中,所述文本数据包括文本语句及传入参数;

预测结果模块,用于根据所述文本语句及所述传入参数,得到所述文本语句对应的数据信息,并将所述文本语句对应的数据信息输入至预先建立的预测模型中,得到所述文本语句对应的语句预测结果;

完整语句模块,用于若所述语句预测结果为SQL语句,则根据对应的文本语句及传入参数生成完整SQL语句;

检查结果模块,用于获取所述完整SQL语句对应的执行计划结果,并根据所述语句预测结果及所述完整SQL语句对应的执行计划结果,生成语句检查结果。

可选的,在本发明一实施例中,所述预测结果模块包括:

预处理单元,用于对所述文本语句及所述传入参数进行预处理;其中,所述预处理包括文本填充及格式转换;

数据信息单元,用于根据预设的字典,对预处理后的文本语句及传入参数进行文本转换,得到所述文本语句对应的数据信息。

可选的,在本发明一实施例中,所述装置还包括:

历史数据模块,用于获取历史日志文件及其对应的预测结果,对所述历史日志文件进行语句提取,得到历史数据;其中,所述历史数据包括历史语句及历史参数;

训练样本模块,用于根据所述历史语句及所述历史参数,得到所述历史语句对应的历史数据信息,并根据所述历史日志文件对应的预测结果与所述历史数据信息得到训练样本;

预测模型模块,用于利用所述训练样本,对初始卷积神经网络模型进行训练,得到所述预测模型。

可选的,在本发明一实施例中,所述装置还包括:

语句归类模块,用于根据所述语句预测结果对所述应用日志文件进行语句归类;其中,所述语句预测结果还包括非SQL语句。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明通过分析应用日志文件得到文本语句,结合预测模型及执行计划结果对文本语句进行预测,以此对应用日志文件中的语句是否为非SQL语句进行判断,减少其导致的全表扫描的隐患,同时摆脱静态代码扫描的配置依赖,相较动态监控更具有针对性,降低误报率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一种SQL语句检查方法的流程图;

图2为本发明实施例中得到数据信息的流程图;

图3为本发明实施例中建立预测模型的流程图;

图4为本发明一具体实施例中SQL语句检查方法的流程图;

图5为本发明一具体实施例中预测模型训练示意图;

图6为本发明另一具体实施例中预测模型训练过程示意图;

图7为本发明实施例一种SQL语句检查装置的结构示意图;

图8为本发明实施例中预测结果模块的结构示意图;

图9为本发明一具体实施例中SQL语句检查装置的结构示意图;

图10为本发明另一具体实施例中SQL语句检查装置的结构示意图;

图11为本发明一实施例所提供的电子设备的结构示意图。

具体实施方式

本发明实施例提供一种SQL语句检查方法及装置,可用于金融领域或其他领域,需要说明的是,本发明的SQL语句检查方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的SQL语句检查方法及装置应用领域不做限定。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示为本发明实施例一种SQL语句检查方法的流程图,本发明实施例提供的SQL语句检查方法的执行主体包括但不限于计算机。图中所示方法包括:

步骤S1,获取应用日志文件,并对所述应用日志文件进行语句提取,得到文本数据;其中,所述文本数据包括文本语句及传入参数。

其中,通过程序或者手工方式从应用部署的服务器获取应用日志文件,利用正则表达式对应用产生的日志文件中的文本语句及传入参数进行提取,删除无用的语句,比如日志中的时间节点等。

进一步的,对应用日志文件中的语句进行提取,得到文本数据,文本数据包括文本语句和传入参数的数据信息。文本数据具体如下所示:

Select a from table where col1=?and col2=?

Params:(String)c1,(Integer)2

其中,c1、2即为传入参数,传入的类型为String、Integer。

步骤S2,根据所述文本语句及所述传入参数,得到所述文本语句对应的数据信息,并将所述文本语句对应的数据信息输入至预先建立的预测模型中,得到所述文本语句对应的语句预测结果。

其中,对文本语句和传入参数进行预处理,包括文本填充及格式变换等,并对预处理之后的文本语句和传入参数输入并存储。具体的,将文本语句以空格分割存储在列表list中,将每段短文本处理为同一长度,缺失部分可用某一特定文本填充,之后创建词典或利用已创建的词典,为文本语句中每一个单词附上一个整数的编号。进一步的,把文本信息根据字典编号替换成数值信息,得到文本语句对应的数据信息。

具体的,假设现在有语句:

select accno from table where cardno=?

Params:(String)*

其中,参数语句即为“(String)*”,可以空格为分隔符得到长度为8的list集合和长度为1的参数集合,缺失部分可用

填充,得到:

[’select’,’accno’,’from’,’table’,’where’,’cardno’,’=’,’?’],[‘(String)*’]

创建词典,对于新出现的词汇会依次累加字典值,丰富词典,如下:

{’

’:0,”select’:1,’delete’:2,’update’:3,’cardno’:4,

’from’:5,’where’:6,’order’:7,’group’:8,’by’:9,’accno’:10,

’=’:11,’table’:12,’?’:13,’and’:14,’date’:15,‘(String)*’:16},将文本转换为数值信息如:[1,10,5,12,6,4,11,13],[0,0,0,0,0,0,0,16]。

进一步的,将文本语句对应的数据信息输入至预先建立的预测模型中,得到文本语句对应的语句预测结果。具体的,预测模型是利用卷积神经网络建立的,用于预测文本语句是否为SQL语句,即预测结果为SQL语句或非SQL语句。

步骤S3,若所述语句预测结果为SQL语句,则根据对应的文本语句及传入参数生成完整SQL语句。

其中,若语句预测结果为SQL语句,则根据文本语句以及传入参数的类型,拼接得到完整的SQL语句。具体的,由于SQL字段的基本类型有12种,可提前根据类型进行参数配置。比如String类型,可自行设置参数为“abc”等,Integer类型,可自行设置1等,Date类型,可自行设置为now()等。

步骤S4,获取所述完整SQL语句对应的执行计划结果,并根据所述语句预测结果及所述完整SQL语句对应的执行计划结果,生成语句检查结果

其中,获取各应用具有对应的数据库信息,包括url、用户、密码等,结合完整SQL语句,对SQL语句进行执行计划结果获取。执行计划结果是指一条SQL语句的执行过程或访问路径的描述。通过执行计划结果可以分析出SQL语句的性能问题。

具体的,实际中可通过工具执行Explain+sql语句得到结果。此处可通过程序代码进行获取,如下:

Class.foeName(“com.mysql.jdbc.Driver”);//加载驱动

Connetion conn=DriverManager.getConnection(url,用户名,密码);//建立数据库连接,获取连接对象

Statement stat=conn.createStatement();//创建Statement对象

ResultSet rs=stat.executeQuery(Explain+sql语句);//获取sql执行计划结果

进一步的,对于执行计划结果中的访问类型type为All(全表扫描),或者索引key为null的SQL语句,生成的语句检查结果为异常SQL语句。

作为本发明的一个实施例,如图2所示,根据所述文本语句及所述传入参数,得到所述文本语句对应的数据信息包括:

步骤S21,对所述文本语句及所述传入参数进行预处理;其中,所述预处理包括文本填充及格式转换;

步骤S22,根据预设的字典,对预处理后的文本语句及传入参数进行文本转换,得到所述文本语句对应的数据信息。

其中,对文本语句和传入参数进行预处理,包括文本填充及格式变换等,并对预处理之后的文本语句和传入参数输入并存储。具体的,将文本语句以空格分割存储在列表list中,将每段短文本处理为同一长度,缺失部分可用某一特定文本填充,之后创建词典或利用已创建的词典,为文本语句中每一个单词附上一个整数的编号。进一步的,把文本信息根据字典编号替换成数值信息,得到文本语句对应的数据信息。

具体的,假设现在有语句:

select accno from table where cardno=?

Params:(String)*

其中,参数语句即为“(String)*”,可以空格为分隔符得到长度为8的list集合和长度为1的参数集合,缺失部分可用

填充,得到:

[’select’,’accno’,’from’,’table’,’where’,’cardno’,’=’,’?’],[‘(String)*’]

创建词典,对于新出现的词汇会依次累加字典值,丰富词典,如下:

{’

’:0,”select’:1,’delete’:2,’update’:3,’cardno’:4,

’from’:5,’where’:6,’order’:7,’group’:8,’by’:9,’accno’:10,

’=’:11,’table’:12,’?’:13,’and’:14,’date’:15,‘(String)*’:16},将文本转换为数值信息如:[1,10,5,12,6,4,11,13],[0,0,0,0,0,0,0,16]。

作为本发明的一个实施例,如图3所示,预测模型是通过如下方式建立的:

步骤S31,获取历史日志文件及其对应的预测结果,对所述历史日志文件进行语句提取,得到历史数据;其中,所述历史数据包括历史语句及历史参数;

步骤S32,根据所述历史语句及所述历史参数,得到所述历史语句对应的历史数据信息,并根据所述历史日志文件对应的预测结果与所述历史数据信息得到训练样本;

步骤S33,利用所述训练样本,对初始卷积神经网络模型进行训练,得到所述预测模型。

其中,与应用日志文件处理过程类似的,通过程序或者手工方式获取历史日志文件,利用正则表达式对历史日志文件中的历史语句及历史参数进行提取,删除无用的语句,比如日志中的时间节点等。

进一步的,对历史日志文件中的语句进行提取,得到历史数据,历史数据包括历史语句和历史参数的数据信息。对历史日志文件对应的预测结果与历史数据信息进行特征提取等处理,得到训练样本。具体的,训练样本包括SQL常规的增、删、改、查操作的语句,传入参数类型包括String、Integer、Date、Long等。利用训练样本,对初始卷积神经网络模型进行训练,得到预测模型。

作为本发明的一个实施例,方法还包括:根据所述语句预测结果对所述应用日志文件进行语句归类;其中,所述语句预测结果还包括非SQL语句。

其中,对执行计划结果出现异常的SQL语句归类为异常SQL语句,以及对语句预测结果中非SQL语句冶归类为异常SQL语句。利用异常SQL语句再次对预测模型进行训练,自学习优化进行模型更新。

进一步的,对于执行出错的SQL语句会自动输出至另一文件中,同时标记为异常SQL的语句,扫描结束之后会将此文件中的语句作为负样本再自学习,训练得到更新的模型。

在本发明一个具体实施例中,如图4所示为本发明一具体实施例中SQL语句检查方法的流程图,具体包括:

1、由于目前的日志数据较多,所以一般情况下会对应用测试环境中产生的日志进行日清,所以可以通过手工或者程序定时获取日志文件,利用正则表达式将日志文件中的日志语句提取出来,同时利用正则表达式将传入参数如:(String)123、(Integer)12替换为(String)*,(Integer)*。

2、数据预处理,采集SQL语句和传入参数作为原始数据,作为待处理的文本SQL数据集。根据SQL语句和参数经过预处理、格式变换之后输入并存储。具体的,将文本以空格分割存储在列表list中,首先将每段短文本处理为同一长度,缺失部分可用某一特定文本填充,之后创建词典,为每一个单词附上一个整数的编号,最后把文本信息根据字典编号替换成数值信息。

具体的,假设现在有语句

select accno from table where cardno=?

Params:(String)*

其中,参数语句即为“(String)*”,可以空格为分隔符得到长度为8的list集合和长度为1的参数集合,缺失部分可用

填充,得到:

[’select’,’accno’,’from’,’table’,’where’,’cardno’,’=’,’?’],[‘(String)*’]

创建词典,对于新出现的词汇会依次累加字典值,丰富词典,如下:

{’

’:0,”select’:1,’delete’:2,’update’:3,’cardno’:4,

’from’:5,’where’:6,’order’:7,’group’:8,’by’:9,’accno’:10,

’=’:11,’table’:12,’?’:13,’and’:14,’date’:15,‘(String)*’:16},将文本转换为数值信息如下:[1,10,5,12,6,4,11,13],[0,0,0,0,0,0,0,16]。

3、利用卷积神经网络对采集的数据样本预处理得到数值信息之后进行训练,数据样本包括SQL常规的增、删、改、查操作的语句,传入参数类型包括String、Integer、Date、Long等,模型训练示意图如图5所示,其过程如图6所示。

步骤3.1:根据步骤2的处理,输入数据转换成固定长度m,文本涉及的词汇个数n,所以嵌入层处理后数据格式为[n,m],设置s个滤波器与数据进行卷积运算,得到特征图。

具体的,设置嵌入层的固定长度为m=5,比如上述例子中的SQL语句,涉及词汇9个,所以可得到尺寸大小为[9,5]的矩阵数据,此时可设置宽度与数据列数一致,高度分别为4、3、2各两个的6个滤波器filter1、filter2、filter3,如下:

当步长设置为1时,进行卷积运算之后分别输出结果为[4,1][5,1][6,1]的特征图。

步骤3.2:进行特征提取,为缩小矩阵的尺寸大小,对矩阵数据进行压缩,保留重要信息,此处再添加池化层。同时为减少邻域大小受限造成的估计值方差增大的影响,和卷积层参数误差造成估计均值的偏移,采用随机池化,具体过程如下:

步骤3.2.1:对矩阵中的元素同时除以元素之和,得到概率矩阵,其每个元素值表示对应位置处值的概率;

步骤3.2.2:按照概率随机选中矩阵中的元素,池化结果就是对应原矩阵的元素值。

步骤3.3:加入全连接层,将步骤3.2得到的二维矩阵数据进行扁平化处理,得到一维矩阵数据,然后乘以权重weight求和,加偏置σ,经过激活函数处理,此处选用Relu激活函数

4、对应用的日志文件进行扫描将文件中的每一行文本信息转换为数值信息,根据步骤3中获得的预测模型对数值信息进行预测。如:

Select a from table where col1=?and col2=?

(String)*,(Integer)*

此时预测结果为是SQL语句,则可得sql:Select a from table where col1=(String)*and col2=(Integer)*。可通过程序代码对语句进行替换处理得到完整的sql语句:Select a from table where col1=”123”and col2=123,然后对sql的执行计划结果进行获取。对于访问类型type为All(全表扫描),或者索引key为null的sql语句,会输出至结果文件。程序代码如下:

Class.forName(“com.mysql.jdbc.Driver”);//加载驱动

Connetion conn=DriverManager.getConnection(url,用户名,密码);//建立数据库连接,获取连接对象

Statement stat=conn.createStatement();//创建Statement对象

ResultSet rs=stat.executeQuery(Explain+sql语句);//获取sql执行计划结果

5、对步骤4中执行计划结果出现异常的语句归类为异常SQL语句,再次进行训练,自学习优化得到新模型。

本发明通过分析应用日志文件得到文本语句,结合预测模型及执行计划结果对文本语句进行预测,以此对应用日志文件中的语句是否为非SQL语句进行判断,减少其导致的全表扫描的隐患,同时摆脱静态代码扫描的配置依赖,相较动态监控更具有针对性,降低误报率。

如图7所示为本发明实施例一种SQL语句检查装置的结构示意图,图中所示装置包括:

语句提取模块10,用于获取应用日志文件,并对所述应用日志文件进行语句提取,得到文本数据;其中,所述文本数据包括文本语句及传入参数。

其中,通过程序或者手工方式从应用部署的服务器获取应用日志文件,利用正则表达式对应用产生的日志文件中的文本语句及传入参数进行提取,删除无用的语句,比如日志中的时间节点等。

进一步的,对应用日志文件中的语句进行提取,得到文本数据,文本数据包括文本语句和传入参数的数据信息。文本数据具体如下所示:

Select a from table where col1=?and col2=?

Params:(String)c1,(Integer)2

其中,c1、2即为传入参数,传入的类型为String、Integer。

预测结果模块20,用于根据所述文本语句及所述传入参数,得到所述文本语句对应的数据信息,并将所述文本语句对应的数据信息输入至预先建立的预测模型中,得到所述文本语句对应的语句预测结果。

其中,对文本语句和传入参数进行预处理,包括文本填充及格式变换等,并对预处理之后的文本语句和传入参数输入并存储。具体的,将文本语句以空格分割存储在列表list中,将每段短文本处理为同一长度,缺失部分可用某一特定文本填充,之后创建词典或利用已创建的词典,为文本语句中每一个单词附上一个整数的编号。进一步的,把文本信息根据字典编号替换成数值信息,得到文本语句对应的数据信息。

具体的,假设现在有语句:

select accno from table where cardno=?

Params:(String)*

其中,参数语句即为“(String)*”,可以空格为分隔符得到长度为8的list集合和长度为1的参数集合,缺失部分可用

填充,得到:

[’select’,’accno’,’from’,’table’,’where’,’cardno’,’=’,’?’],[‘(String)*’]

创建词典,对于新出现的词汇会依次累加字典值,丰富词典,如下:

{’

’:0,”select’:1,’delete’:2,’update’:3,’cardno’:4,

’from’:5,’where’:6,’order’:7,’group’:8,’by’:9,’accno’:10,

’=’:11,’table’:12,’?’:13,’and’:14,’date’:15,‘(String)*’:16},将文本转换为数值信息如:[1,10,5,12,6,4,11,13],[0,0,0,0,0,0,0,16]。

进一步的,将文本语句对应的数据信息输入至预先建立的预测模型中,得到文本语句对应的语句预测结果。具体的,预测模型是利用卷积神经网络建立的,用于预测文本语句是否为SQL语句,即预测结果为SQL语句或非SQL语句。

完整语句模块30,用于若所述语句预测结果为SQL语句,则根据对应的文本语句及传入参数生成完整SQL语句。

其中,其中,若语句预测结果为SQL语句,则根据文本语句以及传入参数的类型,拼接得到完整的SQL语句。具体的,由于SQL字段的基本类型有12种,可提前根据类型进行参数配置。比如String类型,可自行设置参数为“abc”等,Integer类型,可自行设置1等,Date类型,可自行设置为now()等。

检查结果模块40,用于获取所述完整SQL语句对应的执行计划结果,并根据所述语句预测结果及所述完整SQL语句对应的执行计划结果,生成语句检查结果。

其中,获取各应用具有对应的数据库信息,包括url、用户、密码等,结合完整SQL语句,对SQL语句进行执行计划结果获取。执行计划结果是指一条SQL语句的执行过程或访问路径的描述。通过执行计划结果可以分析出SQL语句的性能问题。

具体的,实际中可通过工具执行Explain+sql语句得到结果。此处可通过程序代码进行获取,如下:

Class.foeName(“com.mysql.jdbc.Driver”);//加载驱动

Connetion conn=DriverManager.getConnection(url,用户名,密码);//建立数据库连接,获取连接对象

Statement stat=conn.createStatement();//创建Statement对象

ResultSet rs=stat.executeQuery(Explain+sql语句);//获取sql执行计划结果

进一步的,对于执行计划结果中的访问类型type为All(全表扫描),或者索引key为null的SQL语句,生成的语句检查结果为异常SQL语句。

作为本发明的一个实施例,如图8所示,所述预测结果模块20包括:

预处理单元21,用于对所述文本语句及所述传入参数进行预处理;其中,所述预处理包括文本填充及格式转换;

数据信息单元22,用于根据预设的字典,对预处理后的文本语句及传入参数进行文本转换,得到所述文本语句对应的数据信息。

作为本发明的一个实施例,如图9所示,所述装置还包括:

历史数据模块50,用于获取历史日志文件及其对应的预测结果,对所述历史日志文件进行语句提取,得到历史数据;其中,所述历史数据包括历史语句及历史参数;

训练样本模块60,用于根据所述历史语句及所述历史参数,得到所述历史语句对应的历史数据信息,并根据所述历史日志文件对应的预测结果与所述历史数据信息得到训练样本;

预测模型模块70,用于利用所述训练样本,对初始卷积神经网络模型进行训练,得到所述预测模型。

作为本发明的一个实施例,如图10所示,所述装置还包括:

语句归类模块80,用于根据所述语句预测结果对所述应用日志文件进行语句归类;其中,所述语句预测结果还包括非SQL语句。

基于与上述一种SQL语句检查方法相同的申请构思,本发明还提供了上述一种SQL语句检查装置。由于该一种SQL语句检查装置解决问题的原理与一种SQL语句检查方法相似,因此该一种SQL语句检查装置的实施可以参见一种SQL语句检查方法的实施,重复之处不再赘述。

本发明通过分析应用日志文件得到文本语句,结合预测模型及执行计划结果对文本语句进行预测,以此对应用日志文件中的语句是否为非SQL语句进行判断,减少其导致的全表扫描的隐患,同时摆脱静态代码扫描的配置依赖,相较动态监控更具有针对性,降低误报率。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

如图11所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图11中所示的所有部件;此外,电子设备600还可以包括图11中没有示出的部件,可以参考现有技术。

如图11所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。

其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。

输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。

该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。

存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • SQL语句检查方法及装置
  • 颗粒、光学片、屏幕、显示装置、颗粒检查装置和颗粒制造装置、以及颗粒检查方法、颗粒制造方法、屏幕检查方法和屏幕制造方法
技术分类

06120113212658