免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2270 | 回复: 0
打印 上一主题 下一主题

Hibernate的原理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-23 08:54 |只看该作者 |倒序浏览

hibernate的原理首先在这里给大家讲一讲吧.
其实原理是非常简单的.
我们知道如果用java连接数据库我们首先想到的就是JDBC,那么hibernate是什么呢.
hibernate可以理解为是一个中间件它负责把java程序的sql语句接收过来发送到数据库,
而数据库返回来的信息hibernate接收之后直接生成一个对象传给java.
什么??对象是什么?做什么用的?
java利用对象才可以有效的进行远程的数据传递.
= =java就是一个面向对象的语言啊.这个地方需要大家慢慢体会了.
下面说说hibernate的文件吧.
我们要写一个hibernate的话自然要在数据库里有我们要操作表对吧.不然我们连什么啊.假设是一个student学生表吧.大多数不都喜欢用学生练手么..咱们也用它.
sql语句:
create table student(id Number(10),name varchar2(20))

随便乱建一个了.
这个我们是一定要用的表了.

接下来呢.我们需要有两个hibernate特有的文件.
一个是以.cfg.xml结尾的文件.一个是以.hbm.xml结尾的文件.
这两个文件做什么用的呢?
.cfg.xml的作用就是连接数据库文件内部其实就是一个由user,password,url,driver组成的一个连接库的基本信息.
文件的内容是这样的:



  111
  jdbc:oracle:thin:@127.0.0.1:1521:ris
  org.hibernate.dialect.Oracle9Dialect
  111
                oracle.jdbc.driver.OracleDriver

  
        

到这里这个.cfg.xml的文件就结束了这个文件的全称应该是"你的应用名字.cfg.xml"为了让大家好理解.
我建立的项目名称就是one,所以这个cfg的文件全称应该是one.cfg.xml
这里简单再分析一下这个文件.估计先看这个的话不是很明白.但结合程序看就会明白这个文件的含义了.
这个包含的是程序里面的configuration的实例的信息.通过这个实例的方法configure我们可以
从mapping里得到对应的表的信息和类的信息.
现在再看这个标签.它呢是我们在程序里通过configure的方法BuildSessionFactory所得到的
一个SessionFactory对象这个对象呢可以理解为一个statement我们对数据库的所有操作都是通过它的一系列方法来实现的.
这里面的那些property不用多说啦都是一些连接需要的东西.
其中有个dialect这个一定有不明白吧.这个是hibernate的东西啦.因为咱们不是就用的是hibernate来与数据库连接么.
但数据库不同dialect后面的也就不同.

下面讲这个Student.hbm.xml文件.
这个文件是对数据库的表的映射文件.
我们用这个文件指出哪个类对应着哪个表.
而且还指出哪个类中的属性对应着表中的哪个字段.
我们也来看看内容.





  
   
  
  


到此这个文件就结束了.特别说一下这个id的问题.我们看到它里面有个
这个是什么呢这个是可以实现自动id增加.也就是说如果我们往数据库中插入一个name那么就id自动加1.

这个文件解释一下了这个所包含的就是我们前一个文件里面说的mapping.
我们在java类中configure得到的mapping就是从这个文件里面读取出来的.
类如果带包的话一定要带包名(推荐一切写的类都要带包).包名和类名要注意.包名小写,类名的第一个大写.
我是怕出错,这里提醒大家一下.
这个就是先指定了类对应的表.
然后里面的那些就是指定表中的字段与类中的属性的对应关系了.

到这里这两个特殊的文件就写完了.下面就只是我们的java类了..
要两个.一个是Pojo类.一个是我们的Test类.

我们的Pojo类就是简单的一个javaBean.为什么这么叫??(Plain Old Java Objects, 简单洁净Java对象)


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/29637/showart_263479.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP