Hibernate的视频溜了一遍,里面涉及到得内容并不多,不过个人感觉其复杂度还是比较高的,相比于Struts来说。
从其原理上来讲不过是把实体类映射成数据库对应的表,根据对实体类的操作来完成数据库操作。原理并不复杂,前面有一篇文章大体说了一下。
根据实体类,再加上Hibernate的annotation,可以直接生成数据表,也可以成为定义数据表。既然是定义数据表,那么其中的关系自然要理清楚了。
其中的主键和外键比较好说,通过annotation关键字标明即可,不过其中的关系比较复杂,什么一对多,多对一,单向映射,双向映射。 突然让我想起刚开始学数据库那会儿的事儿了,感觉这个关系有点乱。不过从个人的学习历史来看,这些东西光看理论只能越来越晕,实践一下立马就清晰了然了,当然了,这个实践不是指模仿一些小例子,而是从设计都实现都自己来做。
有实体类到表其中间的桥梁或者是映射关系是根据其对应的xml配置文件,或者annotation来实现的。所以关于注解这一块,尤其是各个类之间的关系尤其要注意。因此一个比较好的开发方式就是建好实体类,然后根据实体类手动建好表,然后再通过hibernate由实体类生成表。把表对比一下就能看出在实体类中的注解是否正确。
关于Hibernate的性能方面也是比较重要的一块内容,因为通过Hibernate完成对数据库的操作相比于直接通过JDBC那等于是绕了一个弯弯儿。由此又要引出Hibernate和JDBC的区别了,H胜在便于设计,J胜在性能。因此要想编程方便又想性能提高,那就需要对Hibernate进行调优了。
关于调优有很多内容需要考虑,比如你再设计实体类关联的时候就要通过annotation配置好其查询时的操作,这个也涉及到1+N的问题。还有就是关于缓存,这个就比较简单了,和cpu工作原理一样。其他的以后慢慢了解。
总结Hibernate中的内容,其中最关键的就是其O/Rmapping的思想,这个很重要。 - from the5fire.com
----EOF-----
微信公众号:Python程序员杂谈
微信公众号:Python程序员杂谈