Home > 零敲碎打 > [教程]使用MyEclipse实现集成Struts+hibernate框架的项目开发过程

[教程]使用MyEclipse实现集成Struts+hibernate框架的项目开发过程

今天放上自己使用MyEclipse开发索迪杯50强项目的过程,也算做Java中使用开源SSH框架的教程吧,整个项目因为CG对Spring目前并不太熟悉,所以取消了Spring部分,不过CG会简单介绍一下在哪些部分可以使用Spring,CG自己也是初学者,所以如果哪些部分有不对或者有问题的地方,欢迎高手不吝指正,在此谢过。

首先了解一下基本环境
Java: J2EE 5 SDK SUN提供的一大包Java工具;
IDE: MyEclipse 7 大名鼎鼎的java IDE工具;
web: tomcat 6 JSP的服务端工具;
DB: MySql5 这个大家应该知道,免费的数据库,大家需要下载相应的JDBC驱动。
使用框架:Struts1.2 + hibernate3


这些工具除了Myeclipse是收费软件之外都是免费,大家可以都可以免费到网络上
下载,Myeclipse相信大家GG一下应该可以找到可以使用的方法,下载完成后安装
,按照需要配置好就可以开始,如果大家对环境的配置还不太明白的话,请关注我
的下一篇日志吧。

好正式开始,首先打开Myeclipse环境,然后新建一个Web Project,点击File->New
-Web Project,自己输入名称,然后选择响应的J2EE版本,我建议使用J2EE5,可以
直接使用JSTL。

下一步,启用项目的Hibernate和Struts capability,选择刚刚新建的项目,单击
Eclipse标题的MyEclipse的Project Capabilities -> Add Hibernate Capability

首先选择Hibernate的库,我选择的是Hibernate3因为3相对来说是比较稳定的一个
版本然后选择Hibernate的库放的位置,如果大家是直接在本机上调试,可以放在
build path,如果要提交或者转移发布,建议选择第二选项拷贝到WEB-INF下的lib
下去

接着,就是选择Hibernate的配置文件的位置,一般是默认,直接下一步

然后,选择数据库的连接配置,大家如果已经配置了数据连接信息,直接选择就好,
CG这里使用的自己配置的MySql

下一步,选择Hibernate的会话工厂的位置,大家可以放在源代码下hibernate下的
包中,方便重构,可以选择已有或者新建,最后Finish,Hibernate的支持配置完成


接着是配置struts支持,步骤跟配置Hibernate相同,Project Capabilities ->
Add Struts Capability,再选择相应的struts版本,我选择的是1.2,然后配置一
下下面的包路径,然后Finish,完成,如果还需要Spring支持的话,步骤类似,这里
略过。


配置Struts + Hibernate完成,接着就改轮到Hibernate的数据对象了,Myeclipse
为我们提供了比较方便的方法了,首先打开DB browser,然后打开你配置好的数据
库连接,如果没有的话,大家可以先的新建一个,填一下驱动和链接字符串就好。
DB browser可以在Window – > show View 下面找到,如果没有,可以再到others
下面找。选中我们需要生成表

然后右击 -> 选择Hibernate Reverse Engineering,这个选项可以看大下面的向导

配置一下自己的项目SRC路径和包名,选中下面的创建DAO扥选项,只要你的数据表
的约束没有问题,直接finish就好了,然后会在SRC中生成相应的DAO文件,如图


下一步就是Struts的详细配置了,实现表示层的功能了,CG的MyEclipse自动集成了
FreeMaker插件,所以可以直接拿来设计。找到Web-Inf下的Struts-config.XML文
件打开,然后进入设计界面,大家可以根据自己的需要创建Action,FormBean,Jsp
等,下面是CG的最终效果图。

一共四个JSP页面,其中editor是一个带Form的JSP
一个Action,GlobalAction类完成全部的动作处理,一个全局转向,用于错误处理

接着大家就是完成响应前端的设计了,设计一下自己的页面,本次教程的源代码大
家可以在CG的日志中找到,大家拿去参考,这里不详细讲解。

下一步,创建逻辑层的的JavaBean对象和相关表的Service类,用于对下层的数据表
DAO对象进行数据读取,修改等操作,并且把这些操作组合,形成完整的表格服务类
用于上一层的Action的调用,使得Action再与DAO分离,这里CG除了对单个表单独创
建了服务类之外还有一个跨表查询的类SpanTableService用于多表之间的查询,建
议大家接口加实现类方式,因为使用多接口继承方式可以方便的实现对多个表的实
现类的调用,而不需要单独实现,具体文件列表现在如下


下面的主要的实现类Student的部分代码截图,其他的表基本类似


好了,业务层基本已经写好了,这里请大家注意,为了使得DAO对象的创建更加方便
CG创建了一个DAOProvider静态类来是提供各个表的DAO对象,我把他们放在util包
当中,另外为了用于表示层Action中提供Service对象,CG又创建了一个Service的
提供类ServiceProvider类,大家如果使用Spring的话,可以考虑用Spring了托管
相应的对象,让Spring来自动生成相应的对象,因为这里没了Spring,只能先用
Provider来实现了,因为是简单的Demo,所以使用直接返回对象即可,大家可以考
虑用XML配置DAO列表,这里不详述了具体代码截图如下


好了,轮到最核心的类了,GlobalAction,这是处理用户请求和处理的类,这里CG
使用的是Dispache转向类,直接由请求中的参数来处理不同的动作,大家直接对不
同的动作请求进行相应的处理既可,处理完成后选择响应的转向,下面是返回学生
列表代码的截图


好了,业务层基本完成,下面回到表示层,这里要处理的就是相关的动态生成的数据
了,如果是用Struts的话,就是Struts的标签的使用了,放个代码截图,这是遍历
所有stu Bean中相关属性并且输出。


如果这些都做完的话,大家也先别着急调试,还有一些东西,配置一个EncoderFilter
学过JSP的朋友的话肯定用过,这里还是要讲一下,CG因为搞错了配置,浪费了不少
时间,encoderFillter类源代码可以在Util包下面找到,下面是代码截图,大家看
好是extends HttpServlet implements Filter哦,不要搞错,CG就错在这里


然后在WEB-INF的web.xml下面配置一下这个Filter,截图如下

最后,如果大家使用EL表达式的话,告诉大家一个下技巧,可以直接配置web.XML
代码如上图,就不需要每个页面<%@ page isELIgnored=”false” %>了。

到这里,大家就可以进行相应的调试工作了,启动一下tomcat,然后发布你的Proj
吧。CG的索迪任务也就完成了,在这里把开发过程分享给大家,如果大家有任何问
题的话,可以直接给我留言,源代码下载地址

http://www.lidaren.com/code/SodiDemo.zip

运行效果,大家可以参看CG最近的日志,欢迎大家评论,指正,CG在此感谢。

李大仁博客原创,欢迎转载,转载请注明引用自李大仁博客

Categories: 零敲碎打 Tags: , ,
  1. April 22nd, 2009 at 10:13 | #1

    纯技术文章!赞一个

  2. April 22nd, 2009 at 18:50 | #2

    回访来啦!支持一下,现在我都比较忙啦,比较少时间坐在电脑前了..希望你一切都顺利哦!

  3. April 22nd, 2009 at 22:06 | #3

    呵呵,谢谢,最近CG也要忙起来了,我的课题跟Linux有很大关系,所以还要请小桥帮帮忙

  4. June 4th, 2009 at 17:36 | #4

    写得真好

  1. No trackbacks yet.
You must be logged in to post a comment.