|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。
次要特征
Hibernate是一个objectrelationalmapping的办理计划和一个耐久办理计划或耐久层。如许的注释大概不克不及使进修Hibernate的人分明。
你也许能够设想一下你的使用程序有良多功效(营业逻辑),你想把数据存到数据库里。当你一切的营业逻辑都用Java对象完成时,数据库的表却不是对象。
Hibernate供应了一个映照数据库表到Javaclass的办理举措。它复制数据库数据到object,也撑持把object数据存储到数据库。以这类办法就能够使object转换一个或多个数据库表。
把数据保留到存储设备就叫做耐久化。复制数据库表数据到object和从object把数据存进数据库表就叫做objectrelationalmapping。
为何要利用objectrelationalmapping?
更好的体系架构
当你把一切的处置和数据库会见都写进了页面,如许你程序就有了良多的弱点。
它重用坚苦。你在很多中央写了反复的代码。使得你在必要更动的时分很难找到一切必要变动的中央。
当你把页面分红营业逻辑和耐久逻辑等部分的时分,你能对照简单地更在个中一部分而不影响别的部分。
削减尺度数据库操纵编写工夫
很多数据库查询都是复杂的“insert,update,delete”语句。这完整没有需要开辟这些单调有趣的语句。Hibernate匡助你节俭了这些工夫。
从数据库加载数据到类相似于以下代码
Queryquery=session.createQuery("selectbfromBugasb");
for(Iteratoriter=query.iterate();iter.hasNext();){
bugs.add((Bug)iter.next());
}
returnbugs;
保留“bug”类相似于
session.update(bug);
本人难于完成一些初级功效
Hibernate供应的缓存计划(Cachingsolutions),事件处置(transactions)和别的功效都是不简单完成的。完整没来由往开辟一些已存在的工具,你仅仅只必要用Hibernate就能够完成上述功效了。
Hibernate是怎样事情的
我的定见是它比实体bean(entitybeans)友爱很多,hibernate只从一些复杂的Java类入手下手(Pojo=PlainOldJavaObjects)。
想利用hibernate你要先编写一个复杂的java类:
publicclassBug
implementsSerializable
{
privateinthashValue=0;
privatejava.lang.Integerid;
privatejava.lang.Stringtitle;
publicBug()
{
}
publicBug(java.lang.Integerfid)
{
this.setId(fid);
}
publicjava.lang.IntegergetId(){
returnid;
}
publicvoidsetId(java.lang.Integerid){
this.id=id;
}
publicjava.lang.StringgetTitle(){
returntitle;
}
publicvoidsetTitle(java.lang.Stringtitle){
this.title=title;
}
.............
然后创立一个映照文件。映照文件形貌Hibernate怎样将类的字段映照到数据库字段。
<hibernate-mappingpackage="de.laliluna.fehlerbehebung">
<classname="Bug"table="bug">
<idname="id"column="fid"type="java.lang.Integer">
<generatorclass="sequence">
<paramname="sequence">public.bug_fid_seq</param>
</generator>
</id>
<propertyname="title"column="ftitle"type="java.lang.String"/>
</class>
</hibernate-mapping>
如今就能够利用hibernate类了。
比方新建一个数据库实体:
try{
Bugbug=newBug();
bug.setTitle("Title");
bug.setTuserFk(tuser);
Transactiontx=session.beginTransaction();
session.save(bug);
tx.commit();
}catch(HibernateExceptione){
e.printStackTrace();
}
必要创立的形貌文件能够用一些工具主动天生,比方MyEclipse。MyEclipse供应了创立类和间接从数据库表创立形貌文件的功效。
Hibernate包含了以下工具:
l从形貌文件天生Java类
l从现无数据表天生形貌文件
l从形貌文件天生数据库表
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。 |
|