动态数据标签的设置方法和系统的制作方法

文档序号:6428716阅读:178来源:国知局

专利名称::动态数据标签的设置方法和系统的制作方法
技术领域
:本发明涉及数据标签设置领域,更具体地说,涉及一种动态数据标签的设置方法和系统。
背景技术
:在现有的CMS(ContentManagementSystem内容管理系统)方案中自定义标签需要通过程序进行扩展,其存在三个问题1、程序实现的数据标签的扩展性不好,增加参数、修改参数以及逻辑修改都需要进行程序修改操作;2、程序修改操作实现费时费力,成本较高;3、程序修改后不能实现实时部署,即时生效,影响用户的正常使用。故,有必要提供一种基于SQL的动态数据标签的设置方法和系统,以解决现有技术所存在的问题。
发明内容本发明要解决的技术问题在于,针对现有的数据标签的设置方法和系统扩展性不好、程序修改费时费力成本较高以及不能实时生效的缺陷,提供一种扩展性好、成本低以及可以实时生效的动态定义标签的参数和SQL的动态数据标签的设置方法和系统。本发明解决其技术问题所采用的技术方案是构造一种动态数据标签的设置方法,其中包括步骤S10、根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;S20、根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;S30、根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板。在本发明所述的动态数据标签的设置方法中,所述动态数据标签的设置方法还包括步骤S05、通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签。在本发明所述的动态数据标签的设置方法中,所述动态数据标签的设置方法还包括步骤S21、根据所述验证结果提供所述解析结果的输出效果预览。在本发明所述的动态数据标签的设置方法中,所述步骤S30包括S31、根据所述验证结果,将所述解析结果初始化后,生成一个私有解析结果;S32、执行所述私有解析结果中相应的SQL并将执行结果组装成所述数据标签中定义的输出类型;S33、将组装后的执行结果输出到模板。在本发明所述的动态数据标签的设置方法中,所述动态数据标签的设置方法还包括步骤S40、所述模板引用所述数据标签时,对所述数据标签进行重命名。本发明还涉及一种动态数据标签的设置系统,其中包括解析模块用于根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;验证模块用于根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;以及执行模块用于根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板。在本发明所述的动态数据标签的设置系统中,所述动态数据标签的设置系统还包括设定模块用于通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签。在本发明所述的动态数据标签的设置系统中,所述动态数据标签的设置系统还包括预览模块用于根据所述验证结果提供所述解析结果的输出效果预览。在本发明所述的动态数据标签的设置系统中,所述执行模块包括初始化单元用于根据所述验证结果,将所述解析结果初始化后,生成一个私有解析结果;组装单元用于执行所述私有解析结果中相应的SQL并将执行结果组装成所述数据标签中定义的输出类型;以及输出单元用于将组装后的执行结果输出到模板。在本发明所述的动态数据标签的设置系统中,所述动态数据标签的设置系统还包括重命名模块用于所述模板引用所述数据标签时,对所述数据标签进行重命名。实施本发明的动态数据标签的设置方法和系统,具有以下有益效果通过动态定义标签的参数和SQL,扩展性好、成本低以及可实时生效,避免了现有的数据标签的设置方法和系统扩展性不好、程序修改费时费力成本较高以及不能实时生效的缺陷。下面将结合附图及实施例对本发明作进一步说明,附图中图1是本发明的动态数据标签的设置方法的第一优选实施例的流程图;图2是本发明的动态数据标签的设置方法的第二优选实施例的流程图;图3是本发明的动态数据标签的设置方法的第三优选实施例的流程图;图4是本发明的动态数据标签的设置方法的第四优选实施例的流程图;图5是本发明的动态数据标签的设置方法的第五优选实施例的流程图;图6是本发明的动态数据标签的设置系统的第一优选实施例的结构示意图;图7是本发明的动态数据标签的设置系统的第二优选实施例的结构示意图;图8是本发明的动态数据标签的设置系统的第三优选实施例的结构示意图;图9是本发明的动态数据标签的设置系统的第四优选实施例的结构示意图;图10是本发明的动态数据标签的设置系统的第五优选实施例的结构示意图;图11是本发明的动态数据标签的设置方法的优选实施例的具体流程示意图。具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在图1所示的本发明的动态数据标签的设置方法的第一优选实施例的流程图中,所述动态数据标签的设置方法开始于步骤100,随后执行步骤101,根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;步骤102,根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;骤103,根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板;最后该方法结束于步骤104。本发明的动态数据标签的设置方法可以让用户在运行期针对当前的数据库结构定义自己的标签。当要使用数据标签时,首先对数据标签的参数进行解析和匹配验证,然后根据当前模板传入的参数执行SQL从数据库中读取需要的数据。采用本发明的动态数据标签的设置方法时,在具体定义标签的时候,把定义数据写入数据库或者XML文件,在进行解析和匹配验证时每次都从存储的位置上进行读取,为了提高性能,可以缓存数据,这样就实现在程序运行期定义,不需要终止程序即可以实时看到SQL执行的效果。在图2所示的本发明的动态数据标签的设置方法的第二优选实施例的流程图中,所述动态数据标签的设置方法开始于步骤200,随后执行步骤201,通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签;步骤202,根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;步骤203,根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;步骤204,根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板;最后该方法结束于步骤205。本发明的动态数据标签的设置方法要预先设定数据库。该数据库首先设定数据标签的标识、预期的输入参数以及输出类型,然后通过SQL绑定变量的方式定义好数据标签;在模板引用的时候,只要获取当前模板传入的数据值(支持变量输入),标签解析引擎就会根据当前模板传入的参数执行SQL从数据库中读取需要的数据。在图3所示的本发明的动态数据标签的设置方法的第三优选实施例的流程图中,所述动态数据标签的设置方法开始于步骤300,随后执行步骤301,根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;步骤302,根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;步骤303,根据所述验证结果提供所述解析结果的输出效果预览;步骤304,根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板;最后该方法结束于步骤305。本发明的动态数据标签的设置方法通过输出效果预览可以人为判定解析结果是否正确,避免产生解析和匹配验证都没有发现的预设错误,如人为发现错误,可以通过更改预设的数据标签的参数来及时改正该错误,确保最后在模板上显示的数据标签指定内容的准确性。在图4所示的本发明的动态数据标签的设置方法的第四优选实施例的流程图中,所述动态数据标签的设置方法开始于步骤400,随后执行步骤401,通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签;步骤402,根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;步骤403,根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;步骤404,根据所述验证结果,将所述解析结果初始化后,生成一个私有解析结果;步骤405,执行所述私有解析结果中相应的SQL并将执行结果组装成所述数据标签中定义的输出类型;步骤406,将组装后的执行结果输出到模板;最后该方法结束于步骤407。本发明的动态数据标签的设置方法采用每次调用一个解析结果以解决多线程环境的安全问题(由于标签的解析结果在数据库中是一个实例,在多线程环境中,如果多个线程调用此实例就会产生线程安全,因此在执行私有解析结果中相应的SQL前,把解析结果重新初始化一次,并生成一个新的私有解析结果的实例,并根据参数和动态SQL组装SQL语句,为当前模板线程私有以解决线程安全),然后把私有解析结果中相应的SQL提交给数据库执行,数据库返回的结果集组装成数据标签中定义的输出类型输出到模板。因此本发明的动态数据标签的设置方法很好的解决了多线程环境中的线程安全问题。在图5所示的本发明的动态数据标签的设置方法的第五优选实施例的流程图中,所述动态数据标签的设置方法开始于步骤500,随后执行步骤501,根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;步骤502,根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;步骤503,根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板;步骤504,所述模板引用所述数据标签时,对所述数据标签进行重命名;最后该方法结束于步骤505。本发明的动态数据标签的设置方法如果采用标签的标识作为唯一键,在同一模板引用多次的时候就会产生发生冲突,这样在输出时会导致标签标识一致但是标签指向的内容不一致的输出内容产生错误。为了解决自定义标签在同一模板多次引用问题,本动态数据标签的设置方法针对同一标签,在一个模板引用的时候取一个别名,很好的解决了不同指向的同名标签的重名问题。本发明还涉及一种动态数据标签的设置系统,在图6所示的本发明的动态数据标签的设置系统的第一优选实施例的结构示意图中,所述动态数据标签的设置系统包括解析模块1、验证模块2以及执行模块3,解析模块1用于根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;验证模块2用于根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;执行模块3用于根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板。本发明的动态数据标签的设置系统可以让用户在运行期针对当前的数据库结构定义自己的标签。当要使用数据标签时,解析模块1和验证模块2首先对数据标签的参数进行解析和匹配验证,然后执行模块3根据当前模板传入的参数执行SQL从数据库中读取需要的数据。采用本发明的动态数据标签的设置系统时,在具体定义标签的时候,把定义数据写入数据库或者XML文件,在进行解析和匹配验证时每次都从存储的位置上进行读取,为了提高性能,可以缓存数据,这样就实现在程序运行期定义,不需要终止程序即可以实时看到SQL执行的效果。在图7所示的本发明的动态数据标签的设置系统的第二优选实施例的结构示意图中,所述动态数据标签的设置系统还包括设定模块4,设定模块4用于通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签。本发明的动态数据标签的设置系统的设定模块4要预先设定数据库。该数据库首先设定数据标签的标识、预期的输入参数以及输出类型,然后通过SQL绑定变量的方式定义好数据标签;在模板引用的时候,只要获取当前模板传入的数据值(支持变量输入),标签解析引擎就会根据当前模板传入的参数执行SQL从数据库中读取需要的数据。在图8所示的本发明的动态数据标签的设置系统的第三优选实施例的结构示意图中,所述动态数据标签的设置系统还包括预览模块5,预览模块5用于根据所述验证结果提供所述解析结果的输出效果预览。本发明的动态数据标签的设置系统的预览模块5通过输出效果预览可以人为判定解析结果是否正确,避免产生解析和匹配验证都没有发现的预设错误,如人为发现错误,可以通过更改预设的数据标签的参数来及时改正该错误,确保最后在模板上显示的数据标签指定内容的准确性。在图9所示的本发明的动态数据标签的设置系统的第四优选实施例的结构示意图中,执行模块3包括初始化单元31、组装单元32以及输出单元33,初始化单元31用于根据所述验证结果,将所述解析结果初始化后,生成一个私有解析结果;组装单元32用于执行所述私有解析结果中相应的SQL并将执行结果组装成所述数据标签中定义的输出类型;输出单元33用于将组装后的执行结果输出到模板。本发明的动态数据标签的设置系统采用每次调用一个解析结果以解决多线程环境的安全问题(由于标签的解析结果在数据库中是一个实例,在多线程环境中,如果多个线程调用此实例就会产生线程安全,因此在执行私有解析结果中相应的SQL前,初始化单元31把解析结果重新初始化一次,并生成一个新的私有解析结果的实例,并根据参数和动态SQL组装SQL语句,为当前模板线程私有以解决线程安全),然后把私有解析结果中相应的SQL提交给数据库执行,组装单元32将数据库返回的结果集组装成数据标签中定义的输出类型由输出单元33输出到模板。因此本发明的动态数据标签的设置方法很好的解决了多线程环境中的线程安全问题。在图10所示的本发明的动态数据标签的设置系统的第五优选实施例的结构示意图中,所述动态数据标签的设置系统还包括重命名模块6,重命名模块6用于所述模板引用所述数据标签时,对所述数据标签进行重命名。本发明的动态数据标签的设置系统如果采用标签的标识作为唯一键,在同一模板引用多次的时候就会产生发生冲突,这样在输出时会导致标签标识一致但是标签指向的内容不一致的输出内容产生错误。为了解决自定义标签在同一模板多次引用问题,本动态数据标签的设置系统针对同一标签,重命名模块6在一个模板引用的时候取一个别名,很好的解决了不同指向的同名标签的重名问题。例如定义了一个数据标签tagA,输入参数为pi、p2,在模板上需要多次应用tagA标签,这样就产生了一个问题,就是如何区分多次标签生成的数据,如果直接用tagA做为标签的数据标识,那么多次使用标签产生的数据是一样的,这样就达不到多次应用的目的,使得多个标签都是使用最后一次定义的数据标识的数据,在应用的时候重命名模块6给tagA取一个模板命名空间的别名,如tagAl、tagA2等,在每次调用此标签的时候,用tagAl作为数据标识,这样就不会出现冲突。系统就能自动解析数据标签并执行SQL,包括任何时刻在系统中定义并即时生效数据标签。下面根据图11所示本发明的动态数据标签的设置方法的优选实施例的具体流程示意图说明本发明的动态数据标签的设置方法的工作原理。1、定义标签,在应用实例上定义数据标签,通过设定标签的标识、输入参数和输出类型、以及需要执行的带绑定变量的SQL。例如定义根据ID查询表tableA的数据标签,标签的标示为getTableABylD,标签的动态SQL为selecta.id,a.namefromtableAawherea.id=:id,输入参数为ID,类型为int,输出类型为HashMap。2、根据标签定义接收数据标签的参数,并对参数进行解析,判断参数是否合法,包括类型的校验、变量名称的映射。例如当模板传入ID值=1,参数解析引擎会根据标签定义的参数类型(int),判断当前出入的数据是否符合类型定义。3、预编译动态SQL,根据传递过来的参数和已经定义的SQL,进行SQL语句和参数的匹配,例如参数传递的个数是否符合要求,SQL中的类型是否和参数传递的一致。如SQL预编译在参数解析以后,传入了ID=1,SQL检查器会判断动态SQL中的绑定变量是否为ID,另外判断库中id字段的类型是否兼容int类型。4、自定义SQL执行器,采用每次调用参数一个解析结果以解决多线程环境的安全问题(由于标签的解析结果在数据库中是一个实例,在多线程环境中,如果多个线程在调用此实例就会产生线程安全,因此在执行私有解析结果中相应的SQL前,把解析结果重新初始化一次,并生成一个新的私有解析结果的实例,并根据参数和动态SQL组装SQL语句,为当前模板线程私有以解决线程安全),然后把私有解析结果中相应的SQL提交给数据库执行,数据库返回的结果集组装成数据标签中定义的输出类型(例如上面的动态SQL,当模板调用标签从数据库获取数据以后,通过结果游标对象读取当前结果集合的所有字段域,然后根据字段与获取各个字段的数据,例如返回的结果字段为id、name,它们的结果值为id=1,name=xxx,把这两个数据组装成一个HashMap对象返回),最后提交给模板解析实例程序。以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。权利要求1一种动态数据标签的设置方法,其特征在于,包括步骤S10、根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;520、根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;530、根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板。2.根据权利要求1所述的动态数据标签的设置方法,其特征在于,所述动态数据标签的设置方法还包括步骤S05、通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签。3.根据权利要求1所述的动态数据标签的设置方法,其特征在于,所述动态数据标签的设置方法还包括步骤521、根据所述验证结果提供所述解析结果的输出效果预览。4.根据权利要求2所述的动态数据标签的设置方法,其特征在于,所述步骤S30包括531、根据所述验证结果,将所述解析结果初始化后,生成一个私有解析结果;532、执行所述私有解析结果中相应的SQL并将执行结果组装成所述数据标签中定义的输出类型;533、将组装后的执行结果输出到模板。5.根据权利要求1所述的动态数据标签的设置方法,其特征在于,所述动态数据标签的设置方法还包括步骤S40、所述模板引用所述数据标签时,对所述数据标签进行重命名。6.一种动态数据标签的设置系统,其特征在于,包括解析模块(1)用于根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;验证模块O)用于根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;以及执行模块(3)用于根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板。7.根据权利要求6所述的动态数据标签的设置系统,其特征在于,所述动态数据标签的设置系统还包括设定模块(4)用于通过预先设定数据标签的标识、输入参数、输出类型以及动态SQL定义至少一个所述数据标签。8.根据权利要求6所述的动态数据标签的设置系统,其特征在于,所述动态数据标签的设置系统还包括预览模块(5)用于根据所述验证结果提供所述解析结果的输出效果预览。9.根据权利要求7所述的动态数据标签的设置系统,其特征在于,所述执行模块(3)包括初始化单元(31)用于根据所述验证结果,将所述解析结果初始化后,生成一个私有解析结果;组装单元(32)用于执行所述私有解析结果中相应的SQL并将执行结果组装成所述数据标签中定义的输出类型;以及输出单元(33)用于将组装后的执行结果输出到模板。10.根据权利要求6所述的动态数据标签的设置系统,其特征在于,所述动态数据标签的设置系统还包括重命名模块(6)用于所述模板引用所述数据标签时,对所述数据标签进行重命名。全文摘要本发明涉及一种动态数据标签的设置方法,其中包括步骤S10、根据数据标签的定义对动态数据标签的参数进行解析,产生解析结果;S20、根据预先设定的数据标签,对所述解析结果进行匹配验证,产生验证结果;S30、根据所述验证结果,执行所述解析结果中相应的SQL并把执行结果输出到模板。本发明还涉及一种动态数据标签的设置系统。本发明的动态数据标签的设置方法和系统通过动态定义标签的参数和SQL,扩展性好、成本低以及可实时生效,避免了现有的数据标签的设置方法和系统扩展性不好、程序修改费时费力成本较高以及不能实时生效的缺陷。文档编号G06F17/30GK102254008SQ201110200300公开日2011年11月23日申请日期2011年7月18日优先权日2011年7月18日发明者王建华申请人:深圳证券信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1