hibernate学习笔记

来源:互联网 发布:网络教育什么学校好 编辑:程序博客网 时间:2024/05/05 19:59
http://www.huihoo.com/java/hibernate/hibernate-ref/2.1.2/html_single/#or-mapping-s1-8必看
 
Hibernate 是一个数据持久层框架
1) 可以用java技术实现数据库到数据持久层的映射
2)有自己的SQL语言(HQL)
其实在过去的系统是没有数据持久层框架这个概念的,那时候数据持久层就是数据库表结构本身的结构。但当面向对象技术出现,当三层结构的流行,作为数据载体的对象怎样映射到关系数据库就成为了一个突出的问题。这时候数据持久层的概念也就出现了。
    所谓层就是要封装层一下的东西。对上层而言就是数据对象本身了,再也没有什么数据库结构了。这样在设计的过程中就可以完整的体系面向对象的思想,而不在考虑关系数据库的数据模型。
 现在在网上最成熟的Hibernate开源应用就应该是天乙社区了http://www.laoer.com/。分析一下还是很有意义的。天乙社区6.0是一套基于JAVA技术的网络虚拟社区,采用了Hibernate+Spring+Struts的轻量级J2EE框架。具体介绍看网站本身。我们这里就它的Hibernate部分仔细分析一下。
   我还没有具体看它的源码。只是看了看它的数据库规模
SELECT count(*) FROM `TABLES` T where table_schema ='test'。共76个表。
对应的Hibernate配置文件75个.hbm.xml文件。BBSCS_TABLEID手工维护。
 
所有的POJO类都在package com.laoer.bbscs.bean。同样对应的hbm.xml也在这个目录下。 
虽然表很多但大部分都是几个表的同构表。像bbscs_forum_0~19结构都一样。具体作用就是处理负载平衡的。这样下来真正的对象也就五,六个。
       对于一个BBS社区系统,涉及的数据对象比较少。就是用户,帖子。数据也比较规范。它主要的问题是怎样在大负载的情况下稳定,高效地运行。这里作者用同构对象进行负载平衡操作。这是每一种可无限扩展的系统所必须关注的问题。
      当然还有一些系统,系统负载不是关键。它的使用者可以说是固定有限的。比如一个局域网中的信息管理系统。这种系统的特点是数据对象无限多,数据处理流程无限长。一句话,系统结构变复杂了。一个BBS系统可以由一个人来维护,但一个复杂的信息系统要一个人维护可能性比较小。在多人协同工作的情况下,怎样使系统只是在简单结构上的垫加,而不是无限复杂系统本身的结构。这就成了总设计者需要认真考虑的了。当然这就不是Hibernate可以提供的功能了。它只是保证你可以进行面向对象的设计,但不能控制你设计出的对象到底是什么样子。
原创粉丝点击