动手改造Ibatis,使其支持文件系统存储数据列 之 源码下载编译和SqlMapConfig解析...

本文接上文

http://www.cnblogs.com/suyuan/archive/2009/04/16/1437360.html

从本篇文章开始我将逐步讲解如果通过修改Ibatis源代码实现上述功能,而本篇先介绍Ibatis下载,编译和sqlmapconfig的解析.此处我们使用的是java版本,.net版本请参考本版本.

下载:

Ibatis的官方网站http://ibatis.apache.org/

你可以通过官方网站下载最新的Ibatis源代码.

官方提供的源码中是不含依赖包的.仅仅提供了一份依赖包清单,并且还没有列全.同时官方给的清单中个别包已经升级而老版本下载已经不再提供,我们尽量找和官方提供清单中最接近的版本.否则可能会造成编译不通过.

如果你觉得麻烦,我这里提供了官方所列清单中的依赖包

  /Files/suyuan/IbatisNeedlib.rar

下载源代码,并且附加了依赖包后,请注意,ibatis是在jdk1.5环境下面编译的通过,如果你选择的是jdk1.6,请更改设置,否则编译错误.

 

下面开始动刀了,呵呵

 

上篇文章中,我们已经介绍了要在sqlmaperconfig文件中增加一个节点

<BaseDirectory resource=”d:/ibatis/”/>

这个节点的作用就是指定文件系统存储根路径.

Ibatis初始化的时候会根据sql-map-2.dtd sql-map-config-2.dtd 验证xml文件是否正确,如果我们之间在sqlmaperconfig 中增加该节点就会初始化出错.

首先我们修改sql-map-config-2.dtd文件

然后还要定义这个节点

完成上面的操作后,xml中增加我们配置的节点 就不会初始化出错了.


仅仅配置完成后,并不起作用,因为还没有解析,还要增加解析的部分.

Ibatis xml的解析 都放在这个package com.ibatis.sqlmap.engine.builder.xml 下面

此处对于sqlmapconfig 解析的类对应的是 SqlMapConfigParser

我们只需要在这个类中增加下面一个方法,并且把这个方法放到 SqlMapConfigParser的构造方法中就可以了.

将这个方法放到构造方法中 其实就是NodeletParser中增加了一个node的处理方法.

 

注意 这句代码

就是把我们解析到的值赋给了一个对象的一个属性.而这个对象就是SqlMapExecutorDelegate,就是说,我们需要在这个对象中增加一个属性是

private String baseDirectory; SqlMapExecutorDelegate 仿佛一个大管家,一样,以后的改造中,我们会多次使用到该对象.

这里假如我们没有在配置文件中 配置 BaseDirectory 节点, 则默认使用当前目录

baseDirectory = System.getProperty("user.dir");

 

 

ok,到现在对于 我们就成功了增加了 BaseDirectory 节点了, 这个配置路径会和以后生成的hash路径组合成我们的文件存储路径.

 

本文到此结束,其余部分将在下文讲解

转载于:https://www.cnblogs.com/suyuan/archive/2009/04/17/1438064.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值