读HSQLDB的源码想到的

昨天在论坛看到一篇讨论嵌入式数据库HSQLDB([url]http://www.iteye.com/topic/79802[/url])的帖子,想到自己曾经读过部分它的源码,有一种对某些技术豁然开朗的感觉。所以,也希望和朋友们一起分享,大家有什么好的感受,不如也分享一下吧。下面是我对那个帖子的冗余回复,我觉得有必要专门发一篇帖子重复一下:

说点题外话,建议大家读读HSQLDB的源码,特别是jdbc driver([b]org/hsqldb/jdbc包[/b])那部分,写得清晰易懂。读了它的部分源码,我自认为对下面一些问题理解深入了:
1、JDBC规范和JDBC实现的关系:怎么自己去设计一个规范,一种架构?我是否自己可以为某种数据设计jdbc driver,如何设计?想想php里面各数据库的函数库各自为政对程序移植性的影响,就知道jdbc规范有多么重要了。

2、JDBC协议:JDBC是基于socket之上的,数据包格式([b]org.hsqldb.Result[/b])(mysql数据包格式公开了)?那么JMS数据包呢?其实,这也可以延伸到分布式协议的设计原理,如RMI、SOAP。其实,这些数据包格式和JSON、YAML这些message格式没有本质的区别,只不过应用范围不一样。任何分布式协议,肯定有一种message格式。

3、JDBC over HTTP:这样我们对RMI over IIOP, soap over HTTP, http tunnel原理有更深入的理解。

4、什么是long connection(jdbc的socket),什么是short connection(http),具体怎么实现?
3和4这些在HSQLDB的[b]org.hsqldb.HTTPClientConnection[/b]类里有实现。

5、Java客户端和服务器端的通讯实现:jdbc driver就可以认为是一个java客户端类库。那么JMS client呢?还有,像mysql有各种语言的driver,原理是什么。

6、sql这种command、描述型语言究竟在数据库里面是个什么地位:sql是怎么传入jdbc driver,最终和database交互的?我们是否可以设计出另外一种command,形成一种行业标准,它在服务器和客户端怎么实现的。

以上我的表达可能有些晦涩,我只想表达一点:大家有兴趣就多读读经典的源码,扩展一下自己的设计思路。可能很多人象我一样,总有忙不完的项目,那么抽几个小时就够了,不必深入。
有很多技术我们理解总是很模糊,当你深入到内部,忽然发现原来就这么回事。我们总觉得IoC很神秘,其实最简单的IoC容器,也许一个HashMap就够了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值