仓酷云

标题: JAVA网页设计在Eclipse中利用Hibernate插件 [打印本页]

作者: 若相依    时间: 2015-1-18 11:12
标题: JAVA网页设计在Eclipse中利用Hibernate插件
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难  比来,我入手下手利用Eclipse作为我的开辟情况。这部分是因为它撑持我开辟时所利用的很多平台,部分是因为Eclipse是开放的可扩大情况的出色代表,人人都能够为它的开展奉献本人的力气。我正入手下手查询拜访人们已提出的一些扩大。比方,我利用了一个叫做XMLBuddy的小插件来处置XML文件,它很有效。以是,我入手下手猎奇是不是有人已编写了利用Hibernate的插件,比来在编写DevelopersNotebook一书时,我做了大批这方面的事情。了局我懂得到,这方面的确有一些事情正在举行,本文将切磋个中之一――HibernateSynchronizer。<P>  HibernateSynchronizer

  迄今为止,在我找到的插件中,HibernateSynchronizer最令我感乐趣,由于看起来它对以映照为中央的事情流供应了最好的撑持,而我的DevelopersNotebook一书中就接纳了这类事情流。(Hibernate能够用于多种用处,以是请检察可用的其他插件,假如您的情况必要其他办法,这些插件将更有匡助。)现实上,HibernateSynchronizer插件让您在修正映照文档时,无需思索更新Java代码,它会在您举行编纂的时分以一种十分相似于Eclipse的体例主动更新Java代码。经由过程为每一个被映照的对象创立一对类,它比Hibernate的内置代码天生工具更加先辈。它“具有”一个基类,当您修正映照时,它能够随便重写这个基类。它还供应一个扩大了这个基类的子类,能够在这个子类中到场营业逻辑和其他代码,而无需忧虑它会在您眼皮底下消散。  由于要合用于以Hibernate映照文档为中央的办法,HibernateSynchronizer还包含一个用于Eclipse的新编纂器组件,为此类文档供应智能帮助和代码主动完乐成能。优异的DTD驱动的XML编纂器(好比后面提到过的XMLBuddy)能够完成个中的一些功效,可是HibernateSynchronizer使用对文档语义的了解做得更好。它还供应了一个映照中的属性和干系的图形化视图、创立新元素的“导游”界面,和其他相似的长处。并且如前所述,在其默许设置中,编纂器会在用户编纂映照文档时主动从头天生数据会见类。
  HibernateSynchronizer另有其他的功效。它在Eclipse的New菜单中到场了一个地区,为创立Hibernate设置和映照文件供应导游,并在包的资本办理器和其他得当的地位中增加了高低文菜单项,利用户能够轻松会见相干的Hibernate操纵。
  好了,如今已有了充足多的笼统形貌,是时分入手下手理论了!究竟,您极可能对此发生了乐趣,要不您就不会浏览本文。那末,怎样安装与利用HibernateSynchronizer呢?
  安装

  可使用Eclipse的内置UpdateManager安装HibernateSynchronizer。该插件为Eclipse2.1和行将公布的Eclipse3的用户供应自力的更新站点。由于我把Eclipse用于义务关头型的事情,以是我利用的仍旧是临盆版本,即2.1。在我撰写本文时,Eclipse3已进进了“公布候选(releasecandidate)”阶段。往年夏末,当我从JavaOne集会返来的时分,我十分但愿可以晋级到临盆版本3。(我说起这一点的次要缘故原由是夸大上面的引导是基于Eclipse2而编写的;在Eclipse3中,某些命令和界面无疑会有所分歧,以是假如您筹办利用它,确保在依照这些步骤的同时还要到场本人的判别!我的印象是HibernateSynchronizer本人的安装引导是针对Eclipse3编写的,大概这对您会有所匡助。)  启动Eclipse,选择Help->SoftwareUpdates->UpdateManager,即可以翻开UpdateManager。Install/Update透视图翻开以后,在FeatureUpdates视图中右击(大概控件单击(control-click),假如您利用的是单按钮鼠标),选择New->SiteBookmark,如所示。


.向UpdateManager增加HibernateSynchronizer插件站点

  在呈现的对话框中,输出所需插件版本的URL。输出的URL取决于您的Eclipse版本:
  还需为新的书签指定一个称号,“HibernateSynchronizer”就很好。显现的对话框包含了我的Eclipse2.1.2情况中的一切必须信息。


.HibernateSynchronizer插件更新站点的书签

  单击Finish以后,新的书签将呈现在FeatureUpdates视图中,如所示。


.HibernateSynchronizer站点如今可用了

  为了实践安装插件,单击书签左边的三角形睁开标记,然后单击个中的下一个三角形睁开标记,反复这个历程,直到呈现插件的图标为止。单击该图标,Preview视图就会更新,从而显现一个同意安装插件的界面,如所示。


.筹办安装插件

  单击InstallNow,实践安装插件,让Eclipse引领您完成全部历程(-10)。


.安装HibernateSynchronizer



.插件允许证协定

  可拜见上面的衡量部分,个中有关于允许证协定的一些会商。在决意在本人的项目中利用HibernateSynchronizer之前,您大概想细心浏览一下它。我以为这是很好的做法,可是使人狐疑的是,它基于GPL,实践上并不是是开源的。


.选择安装插件的地位,利用默许的就能够



.对没有署名的插件收回的尺度告诫



.正在安装



0.安装终了

  如今插件已安装终了,必要加入偏重新运转Eclipse,以便使其失效。呈现的对话框仿佛表示Eclipse将主动重启,可是依据我的履历,单击Yes只会加入情况,必需手动重启。这多是Eclipse2.1的MacOSX完成的一个范围性;Eclipse3将成为首个答应对OSX供应一流撑持的版本。不论怎样说,这是一个小成绩。假如必要重启Eclipse,如今就重启吧,由于应当入手下手设置插件了!
  设置

  Eclipse从头启动以后,能够封闭Install/Update透视图。翻开一个利用Hibernate的Java项目。假如您读过DevelopersNotebook一书中的例子,那末有几个目次可供选择。我将选用第3章中的例子,由于这一章是能够在线浏览的样章。您还能够从该书的站点下载一切例子的源代码。
  假如您筹办创立一个新的Eclipse项目,以便利用示例源代码目次中的一个,只需选择File->New->Project。选择创立一个Java项目,然后单击Next,为其定名(我利用的是“HibernateCh3”,如1所示),作废对Usedefault复选框的选择,以即可以告知Eclipse现有项目目次的地位,然后单击Browse按钮,定位它在驱动器上的详细地位。如今能够单击Finish,创立该项目,可是我一样平常喜好单击Next,然后再次反省Eclipse的选择。(固然,假如有甚么堕落,您一直能够前往并修正项目属性,可是我发明,假如存在库丧失之类的毛病,即刻就会晤对大批的毛病和告诫,这其实是一件贫苦的事变。)


1.创立一个利用Hibernate的新项目

  此处我的告诫是过剩的。Eclipse分明目次的架构及用法,还找出了我曾下载和安装过的一切第三方库,以便让Hibernate和HSQLDB数据库引擎可以运转。这类智能顺应性是Eclipse的主要特征之一。2显现我们的新项目已翻开并筹办好用于实行了。它还显现,Eclipse不喜好把窗口缩到充足小以顺应得当的屏幕快照。从如今起,我只能捕获窗口的一部分。


2.第3章中的示例项目

  接上去要创立一个HibernateSynchronizer可使用的Hibernate设置文件。src目次中已存在一个hibernate.properties文件,它申明了书中例子的设置,可是HibernateSynchronizer只能利用Hibernate的基于XML的设置办法。以是,我们必要把hibernate.properties文件的内容复制到一个新的hibernate.cfg.xml文件中往。从好的方面来讲,这使我们能够见地HibernateSynchronizer的一项特征,即设置文件导游。选择File->New->Other,单击新可用的Hibernate种别,选中HibernateConfigurationFile,然后单击Next。


3.启动HibernateConfigurationFile导游

  当导游启动后,它所供应的用于安排文件的目次取决于以后在Eclipse当选中的文件。出于分歧性方面的思索,必定要把它和properties版本一同放在顶级的src目次中。填进导游所需的其他信息,婚配设置的properties版本,如4所示。注重,与利用Ant把持Hibernate的实行(这是DevelopersNotebook一书中所利用的办法)分歧,当挪用Hibernate时,我们没法把持以后的事情目次,以是必要在URL中利用一条到数据库文件的完整限制路径。我利用的值是(有点丢脸):jdbc:hsqldb:/Users/jim/Documents/Work/OReilly/Hibernate/Examples/ch03/data/music。(假如有人能告知我怎样让Eclipse或HibernateSynchironizer对一个项目利用特定的事情目次,我一定会很感乐趣。我在Eclipse方面仍是一个老手,以是假如晓得这类情形是大概的,只是我不晓得怎样往做,我一定不会感应受惊。)


4.填写设置文件的具体信息

  填写DriverClass时有一点奇异:必要单击Browse按钮,并入手下手输出驱动程序的类名。假如输出“jdbcD”,窗口将只会给出两个选择,很简单就能够找出准确的选择,如5所示。


5.指定HSQLDB驱动程序类

  依照4所示设置合用于您本人的安装的值以后,就能够单击Finish来创立设置文件。HibernateSynchronizer如今已可使用了。它翻开了创立的文件,以是能够看到一个Hibernate的XML设置文件的布局和具体信息。


6.天生的设置文件

  一种疾速测试该设置是不是失效的体例是利用其他的导游界面。选择File->New->Other,单击新可用的Hibernate种别,选中HibernateMappingFile,然后单击Next。当导游呈现时,它应当添补了方才输出的一切设相信息,能够单击Refresh按钮来断定它能够与数据库通讯,它还会显现找到了一个TRACK表。第一次如许做的时分,因为某种缘故原由,您大概必需确认包括HSQLDB驱动程序的.jar文件的地位,可是这类情形只会产生一次。不论如何,确认了统统一般以后,单击Cancel,而不是实践创立映照,由于我们想利用手动创立的已有映照文件。
  天生代码

  这极可能是您一向等候的部分。我们能够做些甚么出格的呢?即刻就有一个可用于Hibernate映照文档的新高低文菜单项。
  假如右击(或把持单击)恣意一项,将会看到良多与Hibernate相干的选项(7),个中包含一个同步选项。这是一种手动让HibernateSynchronizer天生与映照文档相干的数据会见对象的体例。


7.映照文档的同步选项

  AddMappingReference选项也很有效:它在主Hibernate设置文件中增加了一项,告诉有关该映照文档的信息,以是无需在源代码中到场任何内容来请求设置响应的映照。如今我们来看看选择SynchronizeFiles的了局。
  到这里事变入手下手变得风趣了。呈现了两个新的子包,一个用于HibernateSynchronizer“具有的”“基”数据会见对象,能够在任什么时候候举行改写,而另外一个用于为这些DAO天生子类的营业对象,它不会被重写,这为我们供应了一个向数据类增加营业逻辑的时机(如8所示)。


8.经由同步的数据会见对象,显现了可编纂的子类

  如许天生的类比利用惯例的Hibernate代码天生工具天生的类要多良多,这有一些长处和一些潜伏的弱点,在稍后的衡量部分中我们将会商这些。还要注重,能够在项目标属性设置当选择天生个中的哪些类,和天生它们的包布局。我原本应当演示一下的,可是以后的插件版本有一个bug,它制止了在MacOSX上对这个设置界面举行会见。补钉已开辟出来了,但还没有公布。
  基于HibernateSynchronizer页面上的例子与上面的类,我试图利用这些新的数据会见对象拔出一些数据到音乐数据库中。这非常相似于利用尺度Hibernate代码天生器的版本(在Hibernate:ADevelopersNotebook一书的39-40页),乃至更加复杂,由于HibernateSynchronizer天生的类针对每项数据库操纵都创立并提交了一个新事件,以是在像如许复杂的场境中,您不必要编写代码来设置事件。(固然了,要让一组操纵作为单个事件运转,有良多种办法。)上面是新版本的代码:
  1. packagecom.oreilly.hh;importjava.sql.Time;importjava.util.Date;importnet.sf.hibernate.HibernateException;importcom.oreilly.hh.dao.TrackDAO;importcom.oreilly.hh.dao._RootDAO;/***TrycreatingsomedatausingtheHibernateSynchronizerapproach.*/publicclassCreateTest2{publicstaticvoidmain(String[]args)throwsHibernateException{//Loadtheconfigurationfile_RootDAO.initialize();//CreatesomesampledataTrackDAOdao=newTrackDAO();Tracktrack=newTrack("RussianTrance","vol2/album610/track02.mp3",Time.valueOf("00:03:30"),newDate(),(short)0);dao.save(track);track=newTrack("VideoKilledtheRadioStar","vol2/album611/track12.mp3",Time.valueOf("00:03:49"),newDate(),(short)0);dao.save(track);//Wedontevenneedatrackvariable,ofcourse:dao.save(newTrack("GravitysAngel","/vol2/album175/track03.mp3",Time.valueOf("00:06:06"),newDate(),(short)0));}}
复制代码
  当我编写这些代码时,可使用Eclipse是一件非常满意的事变。我已忘了当我为书本编写例子时,我何等但愿可使用智能代码完乐成能,并且JDT在其他方面也一样能帮上忙。
  为了在Eclipse中运转这个复杂的程序,我们必要设置一个新的Run设置。选择Run->Run...,把CreateTest2.java作为以后的举动编纂器文件。单击New,Eclipse就会晓得我们想要在以后项目中运转这个类,由于我们利用main()办法创立它。它指定的默许称号是CreateTest2。界面应当如9所示。单击Run,试着创立一些数据。


9.筹办幸亏Eclipse中运转我们的创立测试

  假如您的确依照了这些步骤,您就会发明实行时初次实验将会失利:Hibernate埋怨说设置文件没有包括映照援用,而按请求最少要有一个。啊哈!以是,这就是6底部XMLBuddy呈现黄色下划线告诫的缘故原由。我们能够很简单地办理这个成绩,详细办法是在PackageExplorer视图中的Track.hbm.xml映照文档上右击,然后在新的HibernateSynchronizer子菜单当选择AddMappingReference。这对XMLBuddy来讲是准确的做法,可让运转持续。遗憾的是,运转没有持续多久。下一个毛病是没法在JNDI中找到JTAUserTransaction初始高低文。明显我并不是唯一碰到这类成绩的人,在一个论坛主题中相干的会商热火朝天,可是还没有人找到办理计划。
  由于晓得我不必要利用JTA,以是我想晓得为何Hibernate要实验找到JTA。我翻开了Hibernate设置文件(6),然后寻觅HibernateSynchronizer中的任何可疑的地方。无疑有几行是最有怀疑的:
  1. <propertyname="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property><propertyname="jta.UserTransaction">java:comp/UserTransaction</property>
复制代码
  我试着把上述内容正文失落并再次运转,这第三次运转乐成了。运转没有呈现毛病,我的数据呈现在数据库中。哇!运转能够信任的antdb方针(DevelopersNotebook一书的第1章中对此有申明)即可以看到一切数据(的确很复杂),如0所示。假如您要如许做,要确保从一个antschema入手下手创立数据库形式,大概清空来自后面实行中的任何测试数据。


0.测试程序所创立的数据

  注重,能够在Eclipse中运转Ant方针,详细办法是右击(或把持单击)PackageExplorer中的build.xml文件,选择RunAn,然后利用Eclipse对话框选择方针。酷吧?


1.在Eclipse中运转Ant

  利用查询取回数据相称复杂,只管此次的代码很靠近于惯例的利用Hibernate天生的一般数据会见类所利用的代码。即便HibernateSynchronizer为处置指定查询天生了大批匡助器办法,我仍是以为它们两头没有哪个办法出格有效,由于它们都保持运转查询后前往了局列表,而不是供应能够间接利用的Query对象。这使您没法利用Query的便利的范例平安的参数设置办法。由于这一点,我决意必定要让RootDAO对象为我供应一个HibernateSession,以便利用老式的办法。我以为我能够编纂HibernateSynchronizer利用的任何模板来天生我想要的任何办法,假如我要利用它来开辟一个项目,我几近一定我会这么做。
  实践上,进一步思索的话,由于当取得一个举动的Session时,您只能处置Query,DAO所供应的办法已到达了最好效果。假如您想像我在这个例子中所做的那样处置查询,您必需老是本人举行会话办理。能够把会话办理嵌进到“您本人的”那一半DAO所供应的营业逻辑中,这就能够同时使用两方面的优点了。这恰是HibernateSynchronizer供应的拆分类模子云云有效的另外一个缘故原由。我将鄙人面临此举行深切切磋。
  不论如何,上面是我第一次想出的代码,基础上同等于书中48-49页上给出的代码:
  1. packagecom.oreilly.hh;importjava.sql.Time;importjava.util.ListIterator;importnet.sf.hibernate.HibernateException;importnet.sf.hibernate.Query;importnet.sf.hibernate.Session;importcom.oreilly.hh.dao.TrackDAO;importcom.oreilly.hh.dao._RootDAO;/***UseHibernateSynchronizersDAOstorunaquery*/publicclassQueryTest3{publicstaticvoidmain(String[]args)throwsHibernateException{//Loadtheconfigurationfileandgetasession_RootDAO.initialize();Sessionsession=_RootDAO.createSession();try{//PrintthetracksthatwillfitinfiveminutesQueryquery=session.getNamedQuery(TrackDAO.QUERY_COM_OREILLY_HH_TRACKS_NO_LONGER_THAN);query.setTime("length",Time.valueOf("00:05:00"));for(ListIteratoriter=query.list().listIterator();iter.hasNext();){TrackaTrack=(Track)iter.next();System.out.println("Track:""+aTrack.getTitle()+"","+aTrack.getPlayTime());}}finally{//Nomatterwhat,closethesessionsession.close();}}}
复制代码
  TrackDAO供应的一个优异特征是静态常量,经由过程它,我们能够哀求指定查询,打消任何因为字符串输出毛病而引发运转时毛病的大概性。我喜好这一点!为这个测试类设置和实行Run设置,将会天生预期的输入,如2所示。


2.Eclipse把持台视图中的查询了局

  我后面提到过,运转这个类以后,我意想到,借助于HibernateSynchronizer所供应的模子,能够用一种更好的办法来完成它。由于指定查询是与该数据会见对象相干的映照文件的一项特征,以是假如我们将查询放进TrackDAO对象中(这才是它真正属于的中央),那末这个对象看起来应当是上面这个模样:
  1. packagecom.oreilly.hh.dao;importjava.sql.Time;importjava.util.List;importnet.sf.hibernate.HibernateException;importnet.sf.hibernate.Query;importnet.sf.hibernate.Session;importcom.oreilly.hh.base.BaseTrackDAO;/***ThisclasshasbeenautomaticallygeneratedbyHibernateSynchronizer.*Formoreinformationordocumentation,visitTheHibernateSynchronizerpage*athttp://www.binamics.com/hibernatesyncorcontactJoeHudsonatjoe@binamics.com.**ThisistheobjectclassthatrelatestotheTRACKtable.*Anycustomizationsbelonghere.*/publicclassTrackDAOextendsBaseTrackDAO{//ReturnthetracksthatfitwithinaparticularlengthoftimepublicstaticListgetTracksNoLongerThan(Timetime)throwsHibernateException{Sessionsession=_RootDAO.createSession();try{//PrintthetracksthatwillfitinfiveminutesQueryquery=session.getNamedQuery(QUERY_COM_OREILLY_HH_TRACKS_NO_LONGER_THAN);query.setTime("length",time);returnquery.list();}finally{//Nomatterwhat,closethesessionsession.close();}}}
复制代码
  如许做更好更明晰,还进一步简化了QueryTest3中的main()办法:
  1. publicstaticvoidmain(String[]args)throwsHibernateException{//Loadtheconfigurationfileandgetasession_RootDAO.initialize();//PrintthetracksthatfitinfiveminutesListtracks=TrackDAO.getTracksNoLongerThan(Time.valueOf("00:05:00"));for(ListIteratoriter=tracks.listIterator();iter.hasNext();){TrackaTrack=(Track)iter.next();System.out.println("Track:""+aTrack.getTitle()+"","+aTrack.getPlayTime());}}
复制代码
  明显,这是一种在利用HibernateSynchronizer时处置指定查询的办法。做一次疾速测试就能够确认它天生一样的输入,并且它的代码也要好良多。
  您是不是想利用HibernateSynchronizer来天生它本人的数据会见对象范例临时放下,我们另有最初一项主要特征要切磋。
  编纂映照

  HibernateSynchronizer的一个次要吸引力就在于它为映照文档供应的专业化的编纂器。能够设置这个编纂器,以便只需保留文件就主动从头天生相干数据对象,可是这只是一个如虎添翼的功效;即便不盘算利用该插件的代码天生器,您也大概但愿利用这个编纂器。它为您供应映照文档元素的智能完乐成能,和一个图形化的纲目视图,能够在这个视图中利用这些元素。
  可是,假如从DevelopersNotebook一书中的下载源代码入手下手,就最少得有一项技能才可让编纂器事情。鄙人载的文件中,映照文档的扩大名为“.hbm.xml”,而只要以“.hbm”开头的文件才干挪用编纂器。实际上,能够在Eclipse中设置扩大名映照,以便使具有这两种扩大名的文件都能利用插件的映照文档编纂器,可是我没法使其失效,并且我注重到撑持论坛上有人面对着与我不异的成绩。以是,最少今朝最好的做法就是重定名文件。(假如您保持利用基于Ant的尺度代码天生,请确保更新build.xml中的codegen方针以利用新的扩大名。)
  在我把Track.hbm.xml重定名为Track.hbm以后,它在PackageExplorer中的图标就更新为Hibernate徽标,而默许的编纂器则变成插件的编纂器,如3所示。因为某种缘故原由,其他的HibernateSynchronizer选项(如7所示)关于个中恣意一种扩大名都是可用的,可是编纂器只对较短的版本可用。


3.Hibernate映照文档(扩大名为“.hbm”)的高低文菜单

  编纂器为映照文档中增加的一切元素都供应高低文相干的主动完成撑持。4显现了一些例子,可是屏幕截图没法真正捕获到该特征的深度和无效性。我激烈倡议您安装插件并利用它。您很快就会看到它在处置映照文档方面是何等有效。




4和25.映照文档编纂器中的完成帮助功效

  如6所示,纲目视图供应了一个关于类条理布局、被映照的元素、指定查询和映照文档中的各类元素的图形化视图,还供应一个菜单,个中有一些导游能够匡助创立新的属性。
  
JAVA网页设计在Eclipse中利用Hibernate插件
登录/注册后可看大图

  
JAVA网页设计在Eclipse中利用Hibernate插件
登录/注册后可看大图


6和27.映照编纂器的纲目视图和“Addproperty”导游

  编纂器中的高低文菜单还供应一个FormatSourceCode选项,可使用它来收拾和从头机关文档。这个编纂器中已有了良多乖巧和有效的特征,看它们怎样开展也是一件风趣的事变。唯一使我感应不满的是(并非甚么年夜成绩),当完成XML属性时,这个编纂器用来匡助办理引号的办法与JDT在Java代码中利用的办法完整分歧。在它们之间往返切换会把人弄含混。(您必要一些工夫顺应JDT的事情体例,可是一旦您入手下手信托它,它就会变得魔力无量。)
  天生数据库形式

  只管我的第一印象是一切内容都来自映照文档,可是HibernateSynchronizer今朝不撑持从映照文档创立或更新数据库形式。撑持论坛上已提出了相干的哀求,以是假如未来看到这些特征,我一定不会受惊,由于供应这类撑持其实不很坚苦。今朝来讲,假如要从映照文档开辟数据库,就必需利用像Hibernate:ADevelopersNotebook书中这类Ant驱动之类的办法。别的,上面形貌的Hibernator插件撑持在Eclipse中举行形式更新。我大概要研讨一下是不是能够同时安装这两种插件。
  我但愿本文可以让您分明地懂得该插件所供应的功效。不管怎样,我没有涵盖它的一切功效,以是假如您有乐趣,能够往下载它然后本人举行探究。
  衡量

  毫无疑问,可使用HibernateSynchronizer来完成一些乖巧的事情。是不是要在我本人的Hibernate项目中利用它呢?如许做有长处也出缺点,极可能直到实践接纳Hibernate来取代我们正在利用的本人开辟的(且太过复杂的)轻量级O/R工具时,我才会做出决意。这是一次意义相称严重的修改,而我们把此次修改推延到了因为其他缘故原由举行架构变更的时分。上面是对我的决意起侧重要感化的一些要素。
  正如我们在安装大节中所谈到的那样,在允许证方面还存在着一点成绩。插件的论坛中有此方面的会商。以后的允许证基于对GNUGPL的定制修正,此次修正删除一切源代码共享方面的条目,可是试图保存“copyleft”回护的其他方面。关于如许做的正当性仍旧存在一些成绩,而作者正在追求另外一种办理举措。很分明,目标是要回护插件,而不是制止其他任何项目利用该插件天生代码,可是有需要细心浏览以后的允许证,看一看其目标是不是已到达,大概您是不是仍旧冒着很年夜的风险。
  统一会商标明,作者本来是以开源的情势公布插件的,可是又一时发出了这一决意,由于他以为它还不敷完善以用作一个优异的典范。接着,他与一些冒失的人经由过程一些十分不兴奋的邮件,这使他不肯再共享源代码。固然,他有权决意是不是与我们共享源代码。该插件关于全部天下来讲是一份年夜礼,而作者其实不欠我们甚么。可是我但愿他能与其他用户举行充足的正面交换,如许就可以刚强他本来共享源代码的设法。我真的以为可以看到我利用的工具的源代码是一件很有代价的事变,不但由于这是一个很好的进修时机,还由于这意味着,假如必要的话我能够立即修复一些小成绩。作者在办理用户的成绩方面一直很热情,呼应也很快,可是一团体没法保持一个社区,由于我们都有忙碌、力倦神疲和心乱如麻的时分。
  HibernateSynchronizer利用它本人的模板和机制来天生数据会见类,这既有长处也出缺点。长处是能够取得比Hibernate的“尺度”代码天生工具更多的功效。可使用数据对象的一个主动天生的子类,并在该数据对象中嵌进营业逻辑,而无需忧虑从头天生会见代码时这些营业逻辑会被改写,这也是一个不错的特征。插件天生的使良多复杂的场景更复杂的类还供应了其他的长处。
  另外一方面,这还意味着,当Hibernate平台增添一些新的特征大概做了修改以后,HibernateSynchronizer天生的代码就有些滞后于Hibernate了。在对Hibernate不常利用的形式的撑持方面,插件代码也存在bug:它的用户群很小,一团体就能够让它坚持更新。您能够在会商论坛上找到这类征象的证据。
  和良多事变一样,潜伏的长处是不是凌驾风险峻由您来决意。即便不利用代码天生器,您也会发明映照编纂器十分有效。假如您只想利用编纂器的主动完成和帮助功效,能够关失落主动同步选项。
  假如您利用过该插件,而且发明它很有效,我倡议您接洽其作者,表达您的谢意,并思索捐出一些资金来匡助撑持它的将来开展。
  其他插件

  迄今为止,我还找到了别的两个也供应Eclipse中的Hibernate撑持的插件。(假如您还晓得有其他的插件,大概未来碰到了如许的插件,我很乐意晓得它们。)也许未来我还会撰写有关这些插件的文章。
  HiberClipse

  HiberClipse插件看起来也是一种十分有效的工具。它仿佛合用于数据库驱动的事情流,在这个事情流中,已有了一个数据库形式,而您想构建一个Hibernate映照文件和Java类来利用该形式。这是一种很罕见的场景,假如您发明本人面对着如许的困难,我激烈保举您利用这个插件。它供应了一项十分酷的特征:在Eclipse中为所利用的数据库供应图形化的“干系视图”。(我应当指出,假如您想从一个现有的数据库形式入手下手,HibernateSynchronizer也会有所匡助的。它的NewMappingFileWizard能够毗连到您的数据库,并基于所发明的内容构建映照文件。)


8.HibernateSynchronizer的映照导游

  Hibernator

  最初一个,Hibernator仿佛偏向于另外一个偏向,即,从Java代码入手下手天生复杂的Hibernate映照文档,然后让您从映照文档构建(或更新)数据库形式。它还供应在Eclipse中运转数据库查询的才能。在这3种插件中,它所处的开辟阶段仿佛最早,可是已值得存眷了,出格是由于它的开辟者是Hibernate开辟团队的成员。

因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。
作者: 分手快乐    时间: 2015-1-20 17:08
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 再见西城    时间: 2015-1-25 23:05
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 因胸联盟    时间: 2015-2-4 08:46
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 老尸    时间: 2015-2-9 20:34
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 第二个灵魂    时间: 2015-2-11 00:58
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 透明    时间: 2015-2-17 23:44
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 小女巫    时间: 2015-2-26 11:19
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
作者: 若相依    时间: 2015-2-27 02:00
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 灵魂腐蚀    时间: 2015-3-8 18:52
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 兰色精灵    时间: 2015-3-16 11:50
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 飘灵儿    时间: 2015-3-22 22:37
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2