惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
L
LangChain Blog
WordPress大学
WordPress大学
V
V2EX
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
Recent Announcements
Recent Announcements
GbyAI
GbyAI
博客园 - 叶小钗
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
雷峰网
雷峰网
The GitHub Blog
The GitHub Blog

博客园 - 雨中漫步的太阳

基于跨数据库的事务的一个讨论,希望参考下大家的意见 Wave帮助、技巧、术语集 从IBatis2.X 移植到IBatis3.0 sqlMapConfig and sqlMap XML 配置文件升级说明 - 雨中漫步的太阳 .NET正则基础——.NET正则类及方法应用[转载] 按钮单击ThickBox弹出窗口 推荐一款界面设计工具 Balsamiq Mockups jQuery.extend的用法 转载 qq2009 好像和金山词霸屏幕取词有冲突 错误 1 error C2664: 'TextOutW' : cannot convert parameter 4 from 'const char [5]' to 'LPCWSTR' 也发一个有道第二题的算法,练练脑子 使用commons-logging和log4j记录日志[转载] 动手改造Ibatis,使其支持文件系统存储数据列 之 看我如何给ResultMap增加属性 发一个 Window Live Writer 插件 SyntaxHighlight 代码样式 700万数据随机取10条仅用不到10ms? IBAtisHelper 源代码放出,需要的下载吧 动手改造Ibatis,使其支持文件系统存储数据列 预览 大家讨论下,结合文件系统,给数据库瘦身方案的可行性 Ibatis SelectKey iBatis resultMap groupBy属性使用心得[转载]
动手改造Ibatis,使其支持文件系统存储数据列 之 源码下载编译...
雨中漫步的太阳 · 2009-04-17 · via 博客园 - 雨中漫步的太阳

本文接上文

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路径组合成我们的文件存储路径.

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