一种mybatis命名空间映射的方法
【专利摘要】本发明公开了一种mybatis命名空间映射的方法,将sqlmapper文件中命名空间和配置文件提供的映射名前缀进行匹配。在解析命名空间时,判断命名空间是否是完整名,若是这不需进行映射,若不是则加上前缀进行映射。这样在项目移植过程中,只需要修改配置文件的映射名前缀,在不修改SQLMapper文件命名空间的情况下,可以完成不同包前缀的接口文件的映射和调用,有效降低项目本地化实施和移植的成本,提高开发效率。
【专利说明】一种mybatis命名空间映射的方法
【技术领域】
[0001] 本发明涉及数据库开发【技术领域】,尤其是一种框架命名空间映射的方法。
【背景技术】
[0002] 在当今的管理信息系统数据库开发中,数据访问持久层ORM框架(如mybatis, hibernate)使用越来越多。ORM框架采用元数据来描述对象一关系映射细节,元数据一般 采用XML格式,并且存放在专门的对象一映射文件中。只要提供了持久化类与数据库的映 射文件,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。
[0003] 在mybatis中,开发者需要提供持久化类和sqlmapper映射文件。在通过接口方 式调用方式下,要求sqlmapper文件中命名空间和接口全限定名对应。在调用接口的时候, 可以通过反射技术查找到对应命名空间下的SQL语句statmentid。在项目移植或本地化实 施过程中,接口的包名常常需要变化,这会导致需要修改大量的sqlmapper文件的命名空 间。mybatis提供了接口映射方式的调用,给开发者带来了方便。但要求SQLMapper文件 中namespace必须设定和接口的完全限定名一致。项目在本地化实施过程中,需要把包路 径设定为指定的值。这样大量的SQLMapper文件中namespace可能需要修改,相关的调用 也需要修改。移植系统应用成本相对较高,效率也低。
[0004] 故,需要一种新的技术方案以解决上述问题。
【发明内容】
[0005] 本发明的目的是针对现有技术存在的不足,提供一种mybatis命名空间映射的方 法,不修改sqlmapper命名空间的情况下,通过修改包前缀的完成和接口完全限定名的映 射。
[0006] 为实现上述发明目的,本发明可采用如下技术方案:
[0007] -种mybatis命名空间映射的方法,包括以下步骤:
[0008] (a)、首先在框架配置文件中注册提供命名空间的前缀,使用配置属性propertie 来注册,属性propertie中包含注册映射的类型和值;
[0009] (b)、框架启动加载时会根据已注册的propertie信息分析到短名前缀的相关信 息,并完成短名和解析到的所有命名空间值的映射;框架首先解析sql映射文件的命名空 间,根据正则判断是否是完全限定名,如果不是,则根据短名前缀进行映射;
[0010] (C)、如果命名空间已为完全限定名则取得该命名空间并添加至缓存区,如果不 是,则读取短名前缀并和命名空间进行组合映射成完全限定名并添加至缓冲区;
[0011] (d)、当用户调用接口时,通过反射获取接口完全限定名,并到缓存区查找对应的 sql映射,最终完成sql语句的调用。
[0012] 本发明所公开的命名空间映射方法,是基于正则方法实现的。将sqlmapper文件 中命名空间和配置文件提供的映射名前缀进行匹配。在解析命名空间时,判断命名空间是 否是完整名,若是这不需进行映射,若不是则加上前缀进行映射。这样在项目移植过程中, 只需要修改配置文件的映射名前缀。在不修改SQLMapper文件命名空间的情况下,可以完 成不同包前缀的接口文件的映射和调用,有效降低项目本地化实施和移植的成本,提高开 发效率。
【具体实施方式】
[0013] 以下将详细描述本以明的较佳的实施例。本发明的短名映射采用java开发,配置 文件主要属性为propertie,该属性用来注册短名配置信息,主要实现以下内容:
[0014] 配置信息名称,该名称在框架中保持唯一
[0015] 配置信息的值,可以是具体的值,也可以是正则表达式的值
[0016] 为了使用注册信息更规范,本发明的mybatis命名空间短名映射采用键值对注册 信息(当然技术上不限于使用键值对),所以propertie属性一般描述如:
[0017] <propcrtics> <!- Mvbatis短名转为长名--> 〈property name='哪尸厂</?x" /> <!- SQLMapper中需替换的namespace正则--> <property name^nIndudeRegexf, vaiue^ ,fUv **Lmapper\,\ w ^/> 〈/properties〉
[0018] 本发明将公开一个mybatis命名空间映射的方法,在不修改SQLMapper文件命名 空间的情况下,可以完成不同包前缀的接口文件的映射和调用,有效降低项目本地化实施 和移植的成本,提高开发效率。
[0019] 本发明所公开的命名空间映射方法,是基于正则方法实现的。将sqlmapper文件 中命名空间和配置文件提供的映射名前缀进行匹配。在解析命名空间时,判断命名空间是 否是完整名,若是这不需进行映射,若不是则加上前缀进行映射。这样在项目移植过程中, 只需要修改配置文件的映射名前缀。
【权利要求】
1. 一种mybatis命名空间映射的方法,其特征在于,包括以下步骤: (a) 、首先在框架配置文件中注册提供命名空间的前缀,使用配置属性propertie来注 册,属性propertie中包含注册映射的类型和值; (b) 、框架启动加载时会根据已注册的propertie信息分析到短名前缀的相关信息,并 完成短名和解析到的所有命名空间值的映射;框架首先解析sql映射文件的命名空间,根 据正则判断是否是完全限定名,如果不是,则根据短名前缀进行映射; (c) 、如果命名空间已为完全限定名则取得该命名空间并添加至缓存区,如果不是,则 读取短名前缀并和命名空间进行组合映射成完全限定名并添加至缓冲区; (d) 、当用户调用接口时,通过反射获取接口完全限定名,并到缓存区查找对应的sql 映射,最终完成sql语句的调用。
【文档编号】G06F9/44GK104484177SQ201410788407
【公开日】2015年4月1日 申请日期:2014年12月17日 优先权日:2014年12月17日
【发明者】苏祖辉, 支兵 申请人:南京莱斯信息技术股份有限公司