AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JAVA编程

Hibernate+Struts的J2EE应用开发

51自学网 2015-09-03 http://www.wanshiok.com

 

  运用Hibernate和Struts开发J2EE应用

  1、体系结构

  图3显示了基于Hibernate和Struts开发策略的体系结构图。


  2、开发实践

  下面结合开发实践,以在J2EE应用中非常普遍的用户登录过程为例,来说明上述体系结构是如何具体运用的。登录的流程非常清晰:用户从登录页面login.jsp输入登录信息,系统对登录信息进行验证,如果正确则成功登录,否则提示相应错误信息。

  在开发过程中,使用Eclipse做为开发环境,同时加载了对Struts及Hibernate提供更好的控制和支持的第三方插件MyEclipse,Web服务器使用Tomcat,数据库选用了Mysql。

  首先对Hibernate进行配置,只需要对系统自动生成的hibernate.cfg.xml进行修改,配置好数据库连接的各种参数以及定义数据映射文件。由于Hibernate所带的连接池主要用于测试,性能不是很好,可以通过JNDI将其修改为使用Tomcat的连接池。配置文件代码中关键的一部分如下:

<hibernate-configuration><session-factory>
<property name="connection.datasource">java:comp/env/jdbc/ sysdb </property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect </property>
<mapping resource="User.hbm.xml"/>
</session-factory></hibernate-configuration>

  其次是生成持久化类,实际上,由于使用了Hibernate,持久化类以及对持久化对象的映射定义均可以借助于系统中的向导自动生成。持久化对象的映射定义放到了User.hbm.xml中。部分代码如下:

<class name=”User” table=”tUser”>
<id name=”UserID” column=”User_ID” type=”java.lang.Integer”>
<generator class=”native”></id>
<property name=”UserName” column=”User_Name” type=”java.lang.String”>
…..</class>

  再次,使用Struts框架来实现逻辑控制,利用系统提供的向导可以生成视图及控制器。具体的配置在Struts-config.xml文件中。相关代码如下:

<form-beans>
<form bean name=”LoginForm” type=”com.LoginForm”>
</form-beans>
<action-mappings>
<action attribute=”LoginForm” input=”Login.jsp” path=”/DoLogin”
….
</action>
</action-mappings>

  输入页面Login.jsp将用户填写的登录信息提交给控制器DoLogin进行处理,控制器调用由Hibernate定义好的持久化类User从数据库中读取相应信息进行验证。操作完成后将提示信息展示在表示层中。DoLogin中使用语句User u1=UserDAO.findbyname(username)得到User对象,然后就可以进行登录信息的验证。

  从整个开发过程可以看出,程序员除了利用向导对有关的配置文件进行修改,只须编写少量代码即可完成登录模块的编码。开发完成的模块符合MVC框架的要求,质量比较高,易于修改和维护。

  总结与展望

  Hibernate是一个功能强大、高性能、非常流行的ORM工具,它推动了基于普通Java对象模型、用于映射底层数据结构的持久对象的开发,能够提供高级数据查询和检索服务。Struts是一个优秀的基于J2EE平台的MVC框架,它简化了WEB层的开发,实现了应用程序的显示逻辑和业务逻辑的分离。将这两种技术结合起来开发J2EE应用,能极大的提高开发效率,使系统具有更好的可维护性和可扩展性。这种开发策略正逐渐被众多程序员所接受,在实际开发中得到广泛的应用。

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 

上一篇:想动就“动”-Java也可以“动态”灵活  下一篇:Java有能力抵挡LAMP的进攻吗?