hibernate jdbc

转载 2016年05月31日 13:15:41
首先你这个问题说法就不对,Hibernate强悍就不要JDBC这句话是存在问题的,因为Hibernate就是对JDBC进行的封装。
     JDBC的全城叫做Java Data Base Connectivity(java数据库连接),是一组由Sun公司提供的Java操作数据库的API,然后由各个数据库厂商进行了实现,这样我们就能通过相应的驱动包进行各种数据库的连接操作。Hibernate就是基于JDBC的这个一个持久层框架。那么为何要有Hibernate呢?Hibernate又为何而来呢?这要从我们本身Java这门语言说起,Java语言从出生开始就被定位为一种面向对象的语言,Java视一切皆对象,而我们目前大多数的数据库为关系型数据库,数据是通过表与表之间的关系进行联系,当我们使用JDBC操作关系型数据库的时候我们不得不去考虑关系型问题,这样就违背了我们Java这门语言的面向对象观点,于是Hibernate出现了,Hibernate就是为了隔绝对象和关系型数据库之间的这一层别扭(姑且这么叫吧),这样,我们站在Hibernate的角度我们只需要考虑对象的操作,比如说保存一个对象只需要调用session的save方法,而不需要写一条insert into的SQL语句去操作关系型的表,从而达到OO的思想。这样我们就纯面向对象了,那些非面向对象的事情都交由Hibernate去做了,Hibernate会帮我们生成一条insert into语句去发送给数据库。
    既然Hibernate如此的好,那么当Hibernate出现后我们还需要JDBC吗?上面我讲了,不是我们不要JDBC了,而是Hibernate帮我们去操作了JDBC,既然Hibernate在操作JDBC我们在操作Hibernate,这样Hibernate就充当了一个中间人的角色,我们想要什么东西须得交给Hibernate,然后再由Hibernate交给JDBC,这样就会多一层去操作,对性能会有一定的影响,如果你的程序对性能要求非常高,那么自己操作JDBC自然要比Hibernate速度更快、效率更高。
    在批量处理问题上,Hibernate并没有提供较完美的实现,比如说你要修改1万个对象的某一个属性,通过Hibernate操作你得先加载这1万个对象,然后修改这1万个对象的属性,然后再保存这一万个对象,而JDBC我们可以update xxx set x = x where x = x就可以实现。
    看完我的回复之后你觉得“Hibernate如此强大,还需要JDBC么?”这还是一个问题么?
况且一些复杂的sql,hibernate是不支持 ,这时候只能老老实实的写sql语句了


java的应用范围很广,大部分公司都会用到ssh、ssi、javascript(jquery、extjs)等一些框架,一些公司也会在此基础上封装一些自己的东西,做成自己的框架。
java开发主要是bs,做网站(广域网、局域网)之类的东西,客户端程序相对来说较少

相关文章推荐

JDBC模拟hibernate

  • 2014-09-18 09:22
  • 19KB
  • 下载

jdbc_Hibernate总结

  • 2014-12-07 20:44
  • 80KB
  • 下载

java 中 用到的jdbc 调用存储过程,与hibernate 调用存储过程

java 中用到的jdbc 调用存储过程与hibernate 调用存储过程jdbc 中调用存储过程其实都是用是的Connection 来得到CallableStatement ,用CallableSt...

Hibernate and JDBC

  • 2013-04-06 14:57
  • 78KB
  • 下载

jdbc和hibernate学习内容

  • 2012-12-11 23:09
  • 14.52MB
  • 下载

服务器和java程序的桥梁--jdbc/hibernate

现实的应用程序都是用户通过可视化界面发出指令从而修改数据库。本篇文章以Oracle为例,模拟怎么通过java代码实现数据库的增删改查。 新建一个Java项目,要建好桥梁,首先要拷入驱动Jar包放在项目...

类似hibernate的jdbc封装

  • 2017-05-24 21:28
  • 106KB
  • 下载

详解JDBC与Hibernate区别

原文地址:http://www.cnblogs.com/JemBai/archive/2011/04/13/2014940.html 刚开始学习JAVA时,认为Hibernate是一个很神圣的东西,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)