hibernate和JDBC的本质区别

来源:互联网 发布:免费的录制软件 编辑:程序博客网 时间:2024/06/06 04:08

hibernate和JDBC的本质区别就是Hibernate叫做ORM(Object Relational Mapping),也就是对象关系映射。这和JDBC有什么区别呢?JDBC是直接通过SQL获取信息,你得到的是散乱的信息碎片,因为同一个表格里每一列的属性是不一样的,有VARCHAR,有BLOB,有DATE等等,所以你使用和传递起来很不方便,必须知道每个信息的属性和对应的列名你才能对它进行操作。

在这种情况下如果频繁的从数据库获取不同的信息,不但工作量和代码复杂程度,就连出现bug的机率都大大增加了。如果是你会怎么办呢?是否会为那些重复查询,存储的表格建立一个对应的JavaBean来存储其中每一列的信息,写一个方法去进行转换就行了,这样你不用记住列名,也不用记住属性,更不用使用危险的类似ResultSet.getString("column_name")这样的操作了。你把每一列都放到这个JavaBean里,在使用的时候直接用userObject.getUsername(); userObject.setEmail("user@domain.com");就可以进行数据的读和存,是不是方便了很多?

这个改变就是JDBC到ORM的转变,而Hibernate就是ORM工具的其中一个,这些ORM工具把你数据库里的表格和相应的JavaBean连接起来,形成映射,当你进行数据库查询的时候自动把信息填充到正确的Bean里,在你使用的时候就方便了很多。

这只是Hibernate和JDBC的区别,在这类ORM工具里,除了关系的映射之外还有很多性能,安全性等方面的优化,但学习Hibernate过程中如果摸不着头脑的话,我想了解了ORM工具的原理会有所帮助吧。

原创粉丝点击