当前位置: 网学 > 编程文档 > JAVA > 正文

Hibernate 的原理与配置

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/04
nbsp;  select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID   from MESSAGES m   order by m.MESSAGE_TEXT asc    以下就是运行结果:    1 message(s) found:   Hello World    如果你以前没有ORM(对象-关系映射)的开发经验,那你可能想在代码的某个地方去寻找这段SQL语句,但在Hibernate中你可能会失望:它根本不存在!所有就SQL语句都是Hibernate动态生成的。    也许你会觉得还缺点什么,对!仅凭以上代码Hibernate是无法将我们的Message类持久化的。我们还需要一些更多的信息,这就是映射定义表!这个表在Hibernate中是以XML格式来体现的,它定义了Message类的属性是怎样与数据库中的MESSAGES表的字段进行一一对应的,列表2是这个示例程序的映射配置文件清单:    列表2:示例程序的对象-关系映射表    <?xml version="1.0"?>   <!DOCTYPE hibernate-mapping PUBLIC   "-//Hibernate/Hibernate Mapping DTD//EN"   "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">   <hibernate-mapping>   <class name="hello.Message" table="MESSAGES">   <id name="id" column="MESSAGE_ID">   <generator class="increment"/>   </id>   <property name="text" column="MESSAGE_TEXT"/>   <many-to-one name="nextMessage" cascade="all" column="NEXT_MESSAGE_ID"/>   </class>   </hibernate-mapping>    以上这个文档告诉Hibernate怎样将Message类映射到MESSAGES表中,其中Message类的id属性与表的MESSAGE_ID字段对应,text属性与表的MESSAGE_TEXT字段对应,nextMessage属性是一个多对一的关系,它与表中的NEXT_MESSAGE_ID相对应。    相对于有些开源项目来说,Hibernate的配置文件其实是很容易理解的。你可以轻松地修改与维护它。只要你定义好了持久类与数据库中表字段的对应关系就行了,Hibernate会自动帮你生成SQL语句来对Message对象进行插入、更新、删除、查找工作,你可以不写一句SQL语句,甚至不需要懂得SQL语言!    现在让我们做一个新的试验,我们先取出第一个Message对象,然后修改它的消息正文,最后我们再生成一个新的Message对象,并将它作为第一个Message对象的下一条消息,其代码如下:    列表3 更新一条消息    Session session = getSessionFactory().openSession();   Transaction tx = session.beginTransaction();   // 1 is the generated id of the first message   Message message =(Message) session.load( Message.class, new Long(1) );   message.setText("Greetings Earthling");   Message nextMessage = new Message("Take me to your leader (please)");   message.setNextMessage( nextMessage );   tx.commit();   session.close();    以上这段代码在调用时,Hibernate内部自动生成如下的SQL语句:    select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID   from MESSAGES m   where m.MESSAGE_ID = 1    insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)   values (2, 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号