- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动手改造Ibatis,使其支持文件系统存储数据列之看我如何给ResultMap增加属性.doc
动手改造Ibatis,使其支持文件系统存储数据列之看我如何给ResultMap增加属性教育资源库
这篇文章我要介绍的是给rusultMap的xml段中增加节点,具体效果如下:
图片看不清楚?请点击这里查看原图(大图)。
或许你会问为什么要这样做?
首先我来说说key ,key的作用是指定用于生成hash路径所依赖的对象属性.这里要注意的是你指定的这个属性的值必须是唯一的. 而数据库中的id作为主键必须是唯一值,所以我们一般以 id 来生成我们所需的hash路径.
然后来说明下 datasource ,这里的datasource可以有两个选择 file 或者 db 如果是选择file的话 则对应列根据hash路径存储在文件系统中,如果选择db 则存储在数据库中 ,默认是db 可以省略.
明白了以上添加的节点的作用 ,接下来我们来一步步修改程序使之达到我们的目标:
第一步,修改dtd验证文件:
这里必须修改 我在上一篇已经介绍过了,这里不再过多解释.请参考上图.
对SqlMap 进行解析是通过.ibatis.sqlmap.engine.builder.xml.SqlMapParser.java 进行的,这里要说明的是由于我们并没有增加新的node,而是仅仅增加了属性,所以我们仅仅在原有的解析的方法上增加对属性的解析就好了
parser.addNodelet(/sqlMap/resultMap, neespace(attributes.getProperty(id));
String resultClassName = attributes.getProperty(class);
String extended = state.applyNamespace(attributes.getProperty(extends));
String xmlName = attributes.getProperty(xmlName);
String groupBy = attributes.getProperty(groupBy);
//解析key
String key = attributes.getProperty(key);
resultClassName = state.getConfig().getTypeHandlerFactory().resolveAlias(resultClassName);
Class resultClass;
try {
state.getConfig().getErrorContext().setMoreInfo(Check the result class.);
resultClass = Resources.classForName(resultClassName);
} catch (Exception e) {
throeException(Error configuring Result. Could not set ResultClass. Cause: + e, e);
}
ResultMapConfig resultConf = state
.getConfig()
.nelName,key);
state.setResultConfig(resultConf);
}
});
注意代码的最后调用了 neapConfig ,这个也要增加key,像一串,我们只要根据程序一步步跟下去逐步增加key就ok了
当我们跟到下面这个地方的时候key必须有一个归宿,他的归宿就是ResultMap对象
请看下图:
123下一页 这篇文章来自..,。
图片看不清楚?请点击这里查看原图(大图)。
然后我们跳转到ResultMap类,继续看
这里我在ResultMap类中增加了三个属性,key就不用解释了 ,
filehandlerpath其实就是指我一直在说的hash路径.下图展示了生成hash路径的方式.
//生成hash路径
public void setFilehandlerpath(Object key) {
if(key!=null)
{
filehandlerpath = delegate.getBaseDirectory() + this.resultClass.getSimpleName();
String
您可能关注的文档
- 六类的系统和系统部件.doc
- 共产党员必须自觉接受党的纪律的约束.doc
- 共享一劳永逸的数据库编码解决方案.doc
- 共享上网二方案二之利用NAT转换.doc
- 共享经济几乎变成“共享主义”共享经济的边界无限?.doc
- 共享经济大道其行,刺激玩具租赁东山再起?.doc
- 共同体的悲喜笑剧:从政治谈话性节目与全民大闷锅谈起.doc
- 关于5~6岁儿童独立性发展现状及性别差异的调查研究.doc
- 关于CAN与以太网数据交换的研究与分析.doc
- 关于web应用程序安全的思考(一).doc
- 第 4 讲 工业防毒技术-一认识工业毒物 二预防窒息性气体危害 三预防重金属危害 四预防有机物危害 五综合防毒技术-1752130002967.pptx
- 第 3 讲 防火防爆技术-一燃烧与爆炸基础知识 二火灾爆炸危险物质及其处理 三防止火灾爆炸发生 四控制火灾及爆炸蔓延 五消防安全-1752134391308.pptx
- 第 4 讲 工业防毒技术-一认识工业毒物 二预防窒息性气体危害 三预防重金属危害 四预防有机物危害 五综合防毒技术-1752121685353.pptx
- 第 4 讲 工业防毒技术-一认识工业毒物 二预防窒息性气体危害 三预防重金属危害 四预防有机物危害 五综合防毒技术-1752123175022.pptx
- 第 7 讲 化工装置检修安全技术-一化工装置检修前准备工作 二化工装置安全停车 三化工装置检修特殊作业 四化工装置检修后安全开车-1752130450886.pptx
- 第 6 讲 压力容器 安全 技术-一认识压力容器 二定期检验压力容器 三安全使用气瓶-1752125498821.pptx
- 等度洗脱与梯度洗脱isocraticelutionandg.pptx
- 第 2 讲 危险化学品-一危险化学品的特性与分类 二危险化学品的贮存与运输 三重大危险源-1752128277155.pptx
- 02模块二结构表征30课件.pptx
- 第 4 讲 工业防毒技术-一认识工业毒物 二预防窒息性气体危害 三预防重金属危害 四预防有机物危害 五综合防毒技术-1752120150144.pptx
文档评论(0)