hibernate和直接写sql语句对数据库操作

天冰 发布于 2013/10/28 09:29
阅读 3K+
收藏 0

请教:

hibernate和直接写sql语句对数据库操作有什么区别吗~
是不是写sql语句效率更高~

加载中
1
黑狗
黑狗

引用来自“宏哥”的答案

用hibernate, 好处如下:

1: 你可以有更多的代码和 配置文件, 虽然是做同样的事情

2: 你可以有更多的类关系, 层次关系, 虽然bug更多, 速度更慢,至少, 你得到了很多很多的对象

3: 最大的好处是, 可以找到一堆的hibernate 支持者, 一起鄙视那些居然只会写sql的家伙, 尽管用hibernate的都是连sql都写不清楚的家伙


补充:

好处:

1、hibernate封装了很多其他的机制,比如缓存,比如批操作,等等等等

2、一些简单的sql你可以直接调用他的api

缺点:

1、如果你使用hibernate不是非常熟练,不是非常了解他的话,很多情况下你会碰到性能问题,正如hibernate的优势一样,他的劣势也是他优势里说的那些——因为封装了太多东西,所以显得很重。再比如,如果你不是太了解的话,他的缓存机制会让你的机器长期出现内存爆掉的情况,去了解下他的二级缓存什么的,并不难理解

2、正因为hibernate希望能过把代码写得更活,让你更方便的调用api,所以他采用的是反射机制,同样的你也会碰到性能问题,还有一些反射过程中出现的其他问题。我记得我当时用的hibernate是用的cglib。

3、使用hibernate的api,很多情况下他的api无法满足你的要求,比如那些复杂的sql,你使用hibernate是完成不了的。


再说点sql的缺点和优点:

缺点:

1、开发速度慢。所有东西都自己写

2、技术门槛。对于不精通sql不精通hibernate等等的入门级选手来说,自己写的sql远远不如直接调用hibernate来得效率高,所以,入门级选手希望快速上手做东西,可以直接使用hibernate,碰到解决不了的问题了,再请教别人

优点:

1、效率高。所有的问题,所有的项目和代码,都具有自己的使用场景,所以,如果你技术过关的话,你写sql的效率是一定要超过hibernate的。hibernate的目的是让大家都能使用他,并不是所有的情况下他都是最好的东西。


总结起来就是,不管hibernate,sql还是其他任何问题,没有优劣,就看你会不会用,用对地方了,他就是最合适的。所以,还是看人,不是看具体的技术。

0
长安俞白眉
长安俞白眉
当然是写sql效率高那么一点点,但是开发效率就慢了好多,大多数公司追求的都是开发速度吧。
0
宏哥
宏哥

用hibernate, 好处如下:

1: 你可以有更多的代码和 配置文件, 虽然是做同样的事情

2: 你可以有更多的类关系, 层次关系, 虽然bug更多, 速度更慢,至少, 你得到了很多很多的对象

3: 最大的好处是, 可以找到一堆的hibernate 支持者, 一起鄙视那些居然只会写sql的家伙, 尽管用hibernate的都是连sql都写不清楚的家伙


0
喂码呢
喂码呢

引用来自“宏哥”的答案

用hibernate, 好处如下:

1: 你可以有更多的代码和 配置文件, 虽然是做同样的事情

2: 你可以有更多的类关系, 层次关系, 虽然bug更多, 速度更慢,至少, 你得到了很多很多的对象

3: 最大的好处是, 可以找到一堆的hibernate 支持者, 一起鄙视那些居然只会写sql的家伙, 尽管用hibernate的都是连sql都写不清楚的家伙


第三条深有体会。

另外用Hibernate,你得知道里面到底有多少坑。

0
亮亮2046
亮亮2046

现在项目中hibernate,native sql比例大概在8:2.

项目类型:企业ERP,CRM类型,逻辑不复杂,界面巨多。。。。

返回顶部
顶部