|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
耐久层是一个使用体系最基础的部分。很明显的,假如没有耐久层,一切的事情都将丧失。可是,对分歧的人来讲耐久层意味着分歧的工具。耐久化工夫的是非是选择耐久层贮存媒介的基础权衡尺度之一。比方,关于性命周期为一个用户会话的数据来讲,Httpsession是十分符合的。与之对应的,超过多个session,大概多个用户的耐久化则必要一个数据库来保持。数据的数目是另外一个十分主要的权衡尺度。比方,最好理论标明大批的数据最好不要被存储在一个Http会话中。在这些情形下,你都应当思索利用数据库。在这篇文章中,我们的方针就是数据库耐久层。
你选择的数据库范例对你有架构与计划都有主要的影响。作为面向对象的开辟职员,我们偏向于把数据刻画成形貌手上贸易成绩的一组互相联系关系的对象—这常被称为域模子。可是,最经常使用的存储前言是基于干系模子的。除非我们的对象模子映照成一个干系布局,不然内存中我们数据的暗示就会与耐久化它的办法纷歧致。这个成绩也被称作不合错误称成绩。最盛行的办理这类不合错误称成绩的是一组被称为对象干系映照工具。一个ORM工具是被用来把数据从对象视图转换为干系型、供应诸如创立、读、更新、删除(CRUD)等耐久性服务的软件。有很多的关于ORM工具的论文,可是从实质下去说,他们议论的都是对象映照形式。最盛行的ORM工具是开源的Hibernate工程。
在这篇文章中,我们展现了怎样在一个Struts项目中使用Hibernate。别的,我们将展现怎样创建一个Struts插件来提拔你体系的功能。
处方
在这个文摘中,我们利用一个例子来展现你在struts项目中利用hibernate时所必要的所有工具。我们将创建一个使用程序来猎取和展现从化学元素周期内外掏出的元素。这个使用程
序供应给用户一个查找页来经由过程元素标记来查找元素。使用程序将查询数据库里婚配这个元素标记名的纪录并前往查找到的元素信息来呼应用户哀求。
起首我们将展现怎样启动Hypersonic服务器。当数据库服务器启动后,我们创建示例程序所必要的表与数据。一旦数据库筹办运转了,我们将创建利用Hypersonic数据库服务器所需的Hibernate的一切工具。接上去的步骤是在action里挪用Hibernate来处置数据库读取来响应查询哀求。由于创建Hibernate的Factory对象长短常耗资本的,我们创建一个Strutsplug-in来创建factory并把它保留在context里。
让我们从创建Hypersonic数据库服务器入手下手。你必要从http://hsqldb.Sourceforge.net/下载它。安排hsqldb.jar在你的classpath路径里,从Dos窗口中敲进以下命令来启动Hypersonic:
javaorg.hsqldb.Server
固然分歧版本的Hypersonic的服务器呼应分歧。上面的应对是典范的Hypersonic已筹办好呼应数据库哀求的应对:
Server1.6isrunning
Press[Ctrl]+{c}toabort
跟着数据库服务器的启动,我们能够建表和添补数据,以下列表1所示:
Listing1.创建元素表
createtableelements(idinteger(3)IDENTITY,
namechar(30),
numberchar(30),
masschar(30),
symbolchar(2));
CREATEUNIQUEINDEXui_elements_pkONelements(symbol)insertintoelements(name,number,mass,symbol)values(Manganese,25,55,Mn);insertintoelements(name,number,mass,symbol)values(Zinc,30,65,Zn);insertintoelements(name,number,mass,symbol)values(Thulium,69,169,Tm);insertintoelements(name,number,mass,symbol)values(Californium,98,251,Cf);insertintoelements(name,number,mass,symbol)values(Gold,79,197,Au);insertintoelements(name,number,mass,symbol)values(Ytterbium,70,173,Yb);insertintoelements(name,number,mass,symbol)values(Molybdenum,42,96,Mo);insertintoelements(name,number,mass,symbol)values(Palladium,46,106,Pd);
<p>
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点: |
|