底層技術還是用的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了。