我们以把三个框架都导进来了,接上来我把JAR包给出来,如下图:
大家把多余的jar文件删除(在WEB-INF/lib下)。然后我们开始创建实体类和映射文件,我们找到“DB Browser”选项卡,如下
在我们前面建的数据库连接"mysql"上右键--Open connection...开始连接数据库。如下图:
点击那个小三角找到我们要找的库“test”,然后在库中找到我们要创建映射的表,我这里是user表,表中字段有三个,id intege他是主键,username varchar(45) 用户名,password varchar(45)密码。
然后我们在要创建映射的表上点右键,选择“Hibernate Reverse Engineering...”弹出对话框,如下图:
按照上图配置:先选择映射文件要存放的路径(点java package 后面的那个“Browser”按钮,选择MySSH项目下的一个包,我建的包叫:com.zgh.hibernate.vo,大家也可在上图中看一下我的目录结构),然后按图钩选即可,说明上面图片中有。最后点“Next”进入下一步,如图:
在上图中选择主键生成方式,按图选择即可。点“Finish”完成。
生成两个文件在com.zgh.hibernate.vo中,如下图(包括我项目的路径情况,大家可参考):
这样实体类和其映射文件就创建完成了。我们要修改一个User.hbm.xml文件,把catalog="test"删除,否则Hibernate生成的SQL会出错。下面给出User.hbm.xml的代码,如下:





















User.java代码:
























































接下来我们创建Dao层,我们在com.zgh.spring.dao中创建一个接口和一类实现类:
IUserLoginDao.java代码:










UserLoginDao.java代码:


















以上是Dao层,通过Spring提供的Hibernate模板,实现持久层的操作。比单用Hibernate代码少多了,不用开启和关闭事务和session。
接下来是service层,我们会把事务添加到这层里,这一层一般会把Action中Form的数据转换成实体类给Dao层用,但本例只做登陆,没有体现出来。
我们在com.zgh.spring.service包中创建一个接口和一个实现类。IUserLoginService.java接口代码:










UserLoginService.java代码:


















接下来我们开始写Struts的程序,下一页吧,太多了。
下面我们开始创建Struts的程序,我们在WEB-INF下双击打开struts-config.xml文件,在视图中的空白处右键--New--"Form,Action and JSP":
弹出一对话框,如下图:
此步是创建Form,在User case中输入user,在下面添加Form的属性(点"Add"按钮添加),然后我们我们选择“JSP”选项卡,如下图:
按图中配置即可,创建的jsp文件会出现在WebRoot/jsp文件夹中(应该在WebRoot下创建个jsp文件夹),
然后点击"Next"进入下一步,如下图:
此步是创建Action,在上面输入Path,因为是登陆,这里我们输入"/login",然后确定Type中是com.zgh.struts.action.LoginAction然后点击“Forwards”选项卡,如下图:
按图中的步骤一步一步输入(或选择),先点击“Add” (第2步)在弹出框中的“Name”中输入“success”(第4步),然后点"Browser"按钮(第5步),选择一个登陆成的的页面(第6步,这个页面应该先建好,后面会给出代码),然后点OK(第7步),然后点"Add"按钮(第8步),然后点“Close”关闭(第9步),然后点"Finish"完成(第10步)。完成。在struts-config.xml中生成视图如下:
以下是struts-config.xml的代码,如下:





































注意下上面的action元素的type属性,这是与Spring整合的一种方法,还有后面的plug-in是必须的,而且一定要写到最后,Struts的配置文件必须按先后顺序。
下面是LoginAction.java代码:


















































下面是login.jsp的代码:
















以下是loginSuccess.jsp代码:














好,接下来的在下一页继续。
接下来是UserForm的代码:



















































































以下是applicationContext.xml的代码:























































































上面的xml中,大部分得自己写,如有哪处不明白,留言吧,
数据源和SessionFactory是配置时创建的。下面是Web.xml:


























下面是我的项目的结构:
最后总结:在这个项目中,通过Struts建立视图,并担任控制器角色,Spring则把整个项目的耦合度减到最小,通过Spring的aop实现声明式事务(只需在配置文件中配置),通过Spring提供的Hibernate模板,我们甚至都不用关心Session的创建与关闭.还要说明一点登陆时不要输入中文,这里面没进行转码,我会在以后补充的.