JAVA编程:What is hibernate?
对于一个大型项目,如果用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简单。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种将安全性(Security)列为第一优先考虑的语言 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 是一种使网页(Web Page)产生生动活泼画面的语言 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 是一种将安全性(Security)列为第一优先考虑的语言 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java 编程语言的风格十分接近C、C++语言。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页:
[1]