可能把技术一词换成framework更妥当。我技术细节没写得很详细,因为这不是我的故事的重点。不过既然大家有疑问,我就解释一下。

回答: 职场故事(6) 老印老板小河石子2017-01-21 16:05:04

底层技术还是用的SQL和JDBC,只是纯粹用SQL有些问题不能解决。比如说数据完整性(data integrity) 的问题, 如果在一个transaction中同时对多个table插入或修改数据,就要全部commit,或者全部rollback,不能留有incomplete data。如果单纯用SQL和JDBC写,可以在connection上做文章,设立transaction的起点和终点。但我理解这样不够灵活,不能应对各种可能的情况,code会写得很复杂。

Java Enterprise技术最早出来的时候(2000年左右),设计了EJB(包括session bean 和 entity bean)的framework,解决server端transaction management等各种问题,程序员就只需要关注business logic。这个entity bean就是解决和database的transaction management的问题。但是这个entity bean写起来很麻烦,而且很多人认为它运行起来加了很多overhead,效率不高。估计当时的采用率就不高。

几年之后更流行的技术是hibernate,估计这里大多数人都用过。它做了java class和database table之间的mapping,store 和update data 的SQL是自动生成的,query用的是它自己的语言,简化了SQL的写法。也解决了transaction management的问题。后来spring和hibernate联合使用更简化了transaction management,还解决了纯粹用JDBC和SQL时容易发生的resource (connection) leak 的问题。

我们这个在2000年左右开发的系统就是采用的早期的EJB entity bean。现在恐怕没什么人知道了。而且最新的EJB和实现它的软件商已经明确说不再支持entity bean了。

请您先登陆,再发跟帖!