一种用于Ibatis方案的序列值生成方法及装置制造方法及图纸

技术编号:8722664 阅读:631 留言:0更新日期:2013-05-22 16:15
本发明专利技术实施例公开了一种序列值生成方法及装置,该方法包括:通过用户输入的键名标识查找与所述键名标识对应的结构化查询语句执行对象;当所述结构化查询语言语句执行对象中的classKey属性对象为非空时,动态构建预先定义的序列生成器对象,其中所述classKey属性对象为预先定义的利用java类方法的classKey节点对应的属性对象;根据与所述序列生成器对应的预先定义的序列生成方法生成序列值。可以将Ibatis主键序列值生成方法扩展到自定义的某个Java类方法,而不再仅限于数据库方式。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种用于Ibatis方案的序列值生成方法及装置
技术介绍
Ibatis 一词来源于“ internet”和“abatis”的组合,是一个开放源代码项目,最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。Ibatis的着力点在于POJO(Plain Old Java Objects,普通 Java 对象)与 SQL (Structured Query Language,结构化查询语言)之间的映射关系。也就是说,Ibatis并不会为程序员在运行期自动生成SQL执行,具体的SQL需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定P0J0。当持久层使用Ibatis保存数据进数据库的时候,通常会将一些序列值用作数据表主键或数据唯一标识。在Ibatis框架中,主要通过selectKey子节点完成序列值生成和返回,但selectKey被定义为仅局限于数据库SQL操作语句使用,而不能通过java类生成序列值。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种用于Ibatis方案的序列值生成方法及装置,可扩展利用非数据库方法来生成序列值。为了解决上述技术问题,本专利技术实施例提供了一种用于Ibatis方案的序列值生成方法,包括:通过用户输入的键名标识查找与所述键名标识对应的结构化查询语句执行对象;当所述结构化查询语言语句执行对象中的classKey属性对象为非空时,动态构建预先定义的序列生成器对象,其中所述classKey属性对象为预先定义的利用java类方法的classKey节点对应的属性对象;根据与所述序列生成器对应的预先定义的序列生成方法生成序列值。其中,所述方法还包括以下步骤:所述通过用户输入的键名标识查找与所述键名标识对应的结构化查询语言语句执行对象的步骤之前,检测并加载总配置文件;从所述总配置文件中读取并解析预先定义的数据表操作文件,所述数据表操作文件包括classKey节点配置;解析所述数据表操作文件中的根节点,当所述根节点为classKey节点时,获取所述根节点的结构化查询语言语句执行对象;利用〈键名标识,结构化查询语言语句执行对象 > 对组合的链表结构存储所述数据表操作文件。其中,所述方法还包括:当所述根节点不是classKey节点时,获取所述根节点的结构化查询语言语句执行对象,并判断所述根节点中是否有子节点为classKey节点;若所述根节点中有子节点为classKey节点,分别解析所述classKey节点并将所述c I as sKey节点对应的c I as sKey执行对象注入到所述根节点的结构化查询语言语句执行对象中;利用〈键名标识,结构化查询语言语句执行对象 > 对组合的链表结构存储所述数据表操作文件。其中,所述解析所述classKey节点并将所述classKey节点对应的classKey执行对象注入到所述根节点的结构化查询语言语句执行对象中的步骤具体包括:解析所述classKey节点,获取解析结果对象;将所述解析结果对象构建转化为执行对象;将所述执行对象注入到所述根节点的结构化查询语言语句执行对象中。其中,所述ClassKey子节点的属性包括返回值类型resultClass、属性名称keyProperty、类型type、序列生成器Java类全名className和序列生成方法methodName。相应地,本专利技术还提供了一种用于Ibatis方案的序列值生成装置,包括:查找模块,用于通过用户输入的键名标识查找与所述键名标识对应的结构化查询语句执行对象;序列生成器构建模块,用于当所述结构化查询语言语句执行对象中的classKey属性对象为非空时,动态构建预先定义的序列生成器对象,其中所述classKey属性对象为预先定义的利用java类方法的classKey节点对应的属性对象;序列值生成模块,用于根据与所述序列生成器对应的预先定义的序列生成方法生成序列值。其中,所述序列值生成装置还包括:配置文件加载模块,用于检测并加载总配置文件;配置文件解析模块,用于从所述总配置文件中读取并解析预先定义的数据表操作文件,所述数据表操作文件包括classKey节点配置;根节点解析模块,用于解析所述数据表操作文件中的根节点,当所述根节点为classKey节点时,获取所述根节点的结构化查询语言语句执行对象;存储模块,用于利用〈键名标识,结构化查询语言语句执行对象 > 对组合的链表结构存储所述数据表操作文件。其中,所述根节点解析模块还用于当所述根节点不是classKey节点时,获取所述根节点的结构化查询语言语句执行对象,并判断所述根节点中是否有子节点为classKey节点;所述序列值生成装置还包括:注入模块,用于当所述根节点中有子节点为classKey节点时,分别解析所述classKey节点并将所述classKey节点对应的classKey执行对象注入到所述根节点的结构化查询语言语句执行对象中。其中,所述注入模块包括:classKey解析模块,用于解析所述classKey节点,获取解析结果对象;classKey执行对象构建模块,用于将所述解析结果对象构建转化为执行对象;classKey执行对象注入模块,用于将所述执行对象注入到所述insert节点的结构化查询语言语句执行对象中。其中,所述ClassKey子节点的属性包括返回值类型resultClass、属性名称keyProperty、类型type、序列生成器Java类全名className和序列生成方法methodName。实施本专利技术实施例,具有如下有益效果:通过动态构建序列生成器,利用预先定义的序列生成方法获取序列值,可以将Ibatis主键序列值生成方法扩展到自定义的某个Java类方法(即自定义的序列生成器),而不再仅限于数据库方式。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术提供的用于Ibatis方案的序列值生成方法的第一实施例流程图;图2是使用图1所示的序列值生成方法进行配置文件解析过程的操作步骤流程图;图3是本专利技术提供的用于Ibatis方案的序列值生成方法的第二实施例流程图;图4是使用图3所示的序列值生成方法进行配置文件解析过程的操作步骤流程图;图5是本专利技术提供的用于Ibatis方案的序列值生成装置的第一实施例结构示意图;图6是本专利技术提供的用于Ibatis方案的序列值生成装置的第二实施例结构示意图;图1是本专利技术提供的用于Ibatis方案的序列值生成装置的第三实施例结构示意图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请參见图1,是本专利技术提供的用于Ibatis方案的序列值生成方法的第一实施例流程图本文档来自技高网...

【技术保护点】
一种用于Ibatis方案的序列值生成方法,其特征在于,包括:通过用户输入的键名标识查找与所述键名标识对应的结构化查询语句执行对象;当所述结构化查询语言语句执行对象中的classKey属性对象为非空时,动态构建预先定义的序列生成器对象,其中所述classKey属性对象为预先定义的利用java类方法的classKey节点对应的属性对象;根据与所述序列生成器对应的预先定义的序列生成方法生成序列值。

【技术特征摘要】
1.一种用于Ibatis方案的序列值生成方法,其特征在于,包括: 通过用户输入的键名标识查找与所述键名标识对应的结构化查询语句执行对象; 当所述结构化查询语言语句执行对象中的classKey属性对象为非空时,动态构建预先定义的序列生成器对象,其中所述classKey属性对象为预先定义的利用java类方法的classKey节点对应的属性对象; 根据与所述序列生成器对应的预先定义的序列生成方法生成序列值。2.如权利要求1所述的用于Ibatis方案的序列值生成方法,其特征在于,所述方法还包括以下步骤: 在所述通过用户输入的键名标识查找与所述键名标识对应的结构化查询语言语句执行对象的步骤之前,检测并加载总配置文件; 从所述总配置文件中读取并解析预先定义的数据表操作文件,所述数据表操作文件包括classKey节点配置; 解析所述数据表操作文件中的根节点,当所述根节点为classKey节点时,获取所述根节点的结构化查询语言语句执行对象; 利用〈键名标识,结构化查询语言语句执行对象 > 对组合的链表结构存储所述数据表操作文件。3.如权利要求2所述的用于Ibatis方案的序列值生成方法,其特征在于,所述方法还包括: 当所述根节点不是classKey节点时,获取所述根节点的结构化查询语言语句执行对象,并判断所述根节点中是否有子节点为classKey节点; 若所述根节点中有子节点为classKey节点,分别解析所述classKey节点并将所述classKey节点对应的classKey执行对象注入到所述根节点的结构化查询语言语句执行对象中; 利用〈键名标识,结构化查询语言语句执行对象 > 对组合的链表结构存储所述数据表操作文件。4.如权利要求3所述的用于Ibatis方案的序列值生成方法,其特征在于,所述解析所述classKey节点并将所述classKey节点对应的classKey执行对象注入到所述根节点的结构化查询语言语句执行对象中的步骤具体包括: 解析所述classKey节点,获取解析结果对象; 将所述解析结果对象构建转化为执行对象; 将所述执行对象注入到所述根节点的结构化查询语言语句执行对象中。5.如权利要求1-4中任一项所述的用于Ibatis方案的序列值生成方法,其特征在于,所述ClassKey子节点的属性包括返回值类型resultClass、属性名称keyProperty、类型type、序列生成器Java类全名className和序列生成方法metho...

【专利技术属性】
技术研发人员:王兴春
申请(专利权)人:深圳联友科技有限公司
类型:发明
国别省市:广东;44

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

1