日期:2014-05-16  浏览次数:20364 次

求方案:如果数据库底层驱动不是任何jdbc体系,在spring中应该怎样
首先感谢大家的阅读  谢谢捧场^-^

场景:
1. 公司使用的底层数据存储不是jdbc方式,是开发了一个底层的平台,java通过jni调用Connect从而进行数据的保存、修改、删除和查询。
2.web中使用spring作为ApplicationContext,通过spring容器来管理bean

针对这个Connection他不是jdbc的体系,为了将来的扩展和开发时的方便,想象spring中的jdbctemplate一样实现一个集成了事务以及connection管理于一体的架构出来,目前不知道该从何入手?^-^希望各位多多帮忙,一起讨论下这个需要怎样来设计比较合适。

我目前的大概想法是:
1.Connection如果将来改变可以不用修改底层框架(象hibernate对待不同数据库时可以通过方言来支持不同的底层特性)
2.Connection可以配置池(象c3p0一样) 池打算参考c3p0来做一个实现
3.事务的支持(想象spring一样可以做事务切面) 这部分就晕了不知道怎么入手打算在第一个版本中不实现(不知道1和2条设计时该怎样预留逻辑或者接口方便以后集成事务的处理)
4.Connection的XXXTemplate(类似spring的jdbcTemplate使用一样的方便)这个主要是希望可以方便开发人员从繁琐的底层调用中解脱出来

。。。。
以上就是我的想法了,对于spring从来没有研究过底层的实现现在感觉比较棘手了,设计时可能会走很多弯路。
真诚希望得到大家的帮助 ^-^ 感谢大家了
1 楼 抛出异常的爱 2008-01-21  
spring前装备,后装备
不是为jdbc专门发明的.

PS:spring要作的事就是....方法后装入技术
2 楼 魔力猫咪 2008-01-21  
首先,你要确定你的原有系统是个什么情况。你这个明显是应用和老遗留系统的集成。你应该开发连接器CCI。JNI因为安全原因没有被加入JavaEE体系,JavaEE体系对集成老系统推出了连接器架构。你可以用连接器来直接实现和底层框架的隔离、池对象控、事务。而且Spring支持非托管连接器,你可以在Spring里定义连接器来连接遗留系统。