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

hibernate与jdbc之我见

这是我的第一篇在javaeye写的文章,请大家多关照,

看了kyo100900 hibernate延迟加载的原理与实现 的这篇文章后,深有感触.

这里总结一下我个人的看法

hibernate缺点

1 没办法改变 select *

2 没办法解决 delete from ** where id in(****); delete from *** where id>**;之类的sql

jdbc缺点

1 换数据库时分页代码重写

2 没有很好的cache可用

?

总的来说这2个东西都有各自的好处。

我个人的看法是,首先考虑hibernate来处理增删改查, 当遇到复杂的多表关联查询的时候再去想jdbc

?

?

1 楼 lu_pp 2008-09-19  
1 没办法改变 select *
是什么意思?
2 楼 beckrabbit 2008-09-19  
一个系统里同时用hibernate和jdbc一定不要用来操作同一个表
3 楼 laozhijia 2008-09-19  
引用

lu_pp 1
没办法改变 select *
是什么意思?


就是hibernate 永远都是 select * from 某某表
4 楼 laozhijia 2008-09-19  
引用

一个系统里同时用hibernate和jdbc一定不要用来操作同一个表


同意你的看法,我一般只有jdbc来做查询
5 楼 Michael.zhl 2008-09-19  
hibernate有个最大的好处是数据库无关性,你这么弄,换个数据库就的改代码。
6 楼 hifun 2008-09-19  
没事换啥数据库啊。
咱干开发的本来就是挨着需求来的。
难道一开始都不考虑好使用什么数据库的么。
7 楼 laozhijia 2008-09-20  
引用
没事换啥数据库啊。
咱干开发的本来就是挨着需求来的。
难道一开始都不考虑好使用什么数据库的么。

如果写个代码连数据库都不能完全适用,不断的改代码不是我的风格
如果是jdbc的做法,我至少要在写的时候考虑(oracle ,mysql,sqlserver)的写法,
增加程序的适用性,可谓是快速开发所必不可少的,一个项目用好后,以后能重用
这才是正道
8 楼 qiyongjun 2008-09-23  
lu_pp 写道

1 没办法改变 select *是什么意思?

hibernate也支持select a,b from 啊 返回一个list数组啊
9 楼 qiyongjun 2008-09-23  
hifun 写道

没事换啥数据库啊。 咱干开发的本来就是挨着需求来的。 难道一开始都不考虑好使用什么数据库的么。


如果做产品呢?你指定客户买哪种数据库?