|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
主要特性 Hibernate是一个object relational mapping的解决方案和一个持久治理方案或持久层。这样的解释可能不能使学习Hibernate的人明白。 你或许可以想象一下你的应用程序有很多功能(业务逻辑),你想把数据存到数据库里。当你所有的业务逻辑都用Java对象实现时,数据库的表却不是对象。 Hibernate提供了一个映射数据库表到Java class的解决办法。它复制数据库数据到object,也支持把object数据存储到数据库。以这种方式就可以使object转变一个或多个数据库表。 把数据保存到存储设备就叫做持久化。复制数据库表数据到object和从object把数据存进数据库表就叫做object relational mapping。 为什么要使用object relational mapping? 更好的系统架构 当你把所有的处理和数据库访问都写进了页面,这样你程序就有了很多的缺点。 它重用困难。你在许多地方写了重复的代码。使得你在需要更动的时候很难找到所有需要更改的地方。 当你把页面分成业务逻辑和持久逻辑等部分的时候,你能比较轻易地更在其中一部分而不影响其它部分。 减少标准数据库操作编写时间 许多数据库查询都是简朴的“insert,update,delete”语句。这完全没有必要开发这些单调乏味的语句。Hibernate帮助你节省了这些时间。 从数据库加载数据到类类似于以下代码 Query query = session.createQuery("select b from Bug as b"); for (Iterator iter = query.iterate(); iter.hasNext();) { bugs.add((Bug) iter.next()); } return bugs; 保存“bug”类类似于 session.update(bug); 自己难于实现一些高级功能 Hibernate提供的缓存方案(Caching solutions),事务处理(transactions)和其它功能都是不轻易实现的。完全没理由去开发一些已经存在的东西,你仅仅只需要用Hibernate就可以实现上述功能了。 Hibernate是怎么工作的 我的意见是它比实体bean(entity beans)友好许多,hibernate只从一些简朴的Java类开始(Pojo=Plain Old Java Objects)。 想使用hibernate你要先编写一个简朴的java类: public class Bug implements Serializable { private int hashValue = 0; private java.lang.Integer id; private java.lang.String title; public Bug() { } public Bug(java.lang.Integer fid) { this.setId(fid); } public java.lang.Integer getId() { return id; } public void setId(java.lang.Integer id) { this.id = id; } public java.lang.String getTitle() { return title; } public void setTitle(java.lang.String title) { this.title = title; } ............. 然后创建一个映射文件。映射文件描述Hibernate如何将类的字段映射到数据库字段。 <hibernate-mapping package="de.laliluna.fehlerbehebung"> <class name="Bug" table="bug"> <id name="id" column="fid" type="java.lang.Integer"> <generator class="sequence"> <param name="sequence">public.bug_fid_seq</param> </generator> </id> <property name="title" column="ftitle" type="java.lang.String" /> </class> </hibernate-mapping> 现在就可以使用hibernate类了。 例如新建一个数据库实体: try { Bug bug = new Bug(); bug.setTitle("Title"); bug.setTuserFk(tuser); Transaction tx = session.beginTransaction(); session.save(bug); tx.commit(); } catch (HibernateException e) { e.printStackTrace(); } 需要创建的描述文件可以用一些工具自动生成,例如MyEclipse。MyEclipse提供了创建类和直接从数据库表创建描述文件的功能。 Hibernate包括了以下工具: l 从描述文件生成Java类 l 从现有数据表生成描述文件 l 从描述文件生成数据库表 返回类别: 教程 上一教程: in Software that use java, Show popmenu that have the function of cut copy past to 下一教程: Bad Smells in Code 您可以阅读与"What is hibernate?"相关的教程: · What is SOA?----------对SOA的思索,以及由此想到的人类社会的发展 · 利用Java Reflection(反射)原理,在hibernate里面实现对单表、视图的动态组合查询 · 使用hibernate扩展工具hbm2java根据配置文件生成持久化对象类(2.1.2) · java中,this用途总结。。。 · Beginner: Using Servlets to display, insert and update records in database.(3) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |