[发明专利]一种mybatis命名空间映射的方法有效
申请号: | 201410788407.5 | 申请日: | 2014-12-17 |
公开(公告)号: | CN104484177B | 公开(公告)日: | 2017-12-05 |
发明(设计)人: | 苏祖辉;支兵 | 申请(专利权)人: | 南京莱斯信息技术股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 张弛 |
地址: | 210014 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 mybatis 命名 空间 映射 方法 | ||
技术领域
本发明涉及数据库开发技术领域,尤其是一种框架命名空间映射的方法。
背景技术
在当今的管理信息系统数据库开发中,数据访问持久层ORM框架(如mybatis,hibernate)使用越来越多。ORM框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。只要提供了持久化类与数据库的映射文件,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。
在mybatis中,开发者需要提供持久化类和sqlmapper映射文件。在通过接口方式调用方式下,要求sqlmapper文件中命名空间和接口全限定名对应。在调用接口的时候,可以通过反射技术查找到对应命名空间下的SQL语句statmentid。在项目移植或本地化实施过程中,接口的包名常常需要变化,这会导致需要修改大量的sqlmapper文件的命名空间。mybatis提供了接口映射方式的调用,给开发者带来了方便。但要求SQLMapper文件中namespace必须设定和接口的完全限定名一致。项目在本地化实施过程中,需要把包路径设定为指定的值。这样大量的SQLMapper文件中namespace可能需要修改,相关的调用也需要修改。移植系统应用成本相对较高,效率也低。
故,需要一种新的技术方案以解决上述问题。
发明内容
本发明的目的是针对现有技术存在的不足,提供一种mybatis命名空间映射的方法,不修改sqlmapper命名空间的情况下,通过修改包前缀的完成和接口完全限定名的映射。
为实现上述发明目的,本发明可采用如下技术方案:
一种mybatis命名空间映射的方法,包括以下步骤:
(a)、首先在框架配置文件中注册提供命名空间的前缀,使用配置属性propertie来注册,属性propertie中包含注册映射的类型和值;
(b)、框架启动加载时会根据已注册的propertie信息分析到短名前缀的相关信息,并完成短名和解析到的所有命名空间值的映射;框架首先解析sql映射文件的命名空间,根据正则判断是否是完全限定名,如果不是,则根据短名前缀进行映射;
(c)、如果命名空间已为完全限定名则取得该命名空间并添加至缓存区,如果不是,则读取短名前缀并和命名空间进行组合映射成完全限定名并添加至缓冲区;
(d)、当用户调用接口时,通过反射获取接口完全限定名,并到缓存区查找对应的sql映射,最终完成sql语句的调用。
本发明所公开的命名空间映射方法,是基于正则方法实现的。将sqlmapper文件中命名空间和配置文件提供的映射名前缀进行匹配。在解析命名空间时,判断命名空间是否是完整名,若是这不需进行映射,若不是则加上前缀进行映射。这样在项目移植过程中,只需要修改配置文件的映射名前缀。在不修改SQLMapper文件命名空间的情况下,可以完成不同包前缀的接口文件的映射和调用,有效降低项目本地化实施和移植的成本,提高开发效率。
具体实施方式
以下将详细描述本以明的较佳的实施例。本发明的短名映射采用java开发,配置文件主要属性为propertie,该属性用来注册短名配置信息,主要实现以下内容:
配置信息名称,该名称在框架中保持唯一
配置信息的值,可以是具体的值,也可以是正则表达式的值
为了使用注册信息更规范,本发明的mybatis命名空间短名映射采用键值对注册信息(当然技术上不限于使用键值对),所以propertie属性一般描述如:
本发明将公开一个mybatis命名空间映射的方法,在不修改SQLMapper文件命名空间的情况下,可以完成不同包前缀的接口文件的映射和调用,有效降低项目本地化实施和移植的成本,提高开发效率。
本发明所公开的命名空间映射方法,是基于正则方法实现的。将sqlmapper文件中命名空间和配置文件提供的映射名前缀进行匹配。在解析命名空间时,判断命名空间是否是完整名,若是这不需进行映射,若不是则加上前缀进行映射。这样在项目移植过程中,只需要修改配置文件的映射名前缀。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京莱斯信息技术股份有限公司,未经南京莱斯信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410788407.5/2.html,转载请声明来源钻瓜专利网。