Myeclipse整合ssh实例.docx
- 文档编号:9265693
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:27
- 大小:670.96KB
Myeclipse整合ssh实例.docx
《Myeclipse整合ssh实例.docx》由会员分享,可在线阅读,更多相关《Myeclipse整合ssh实例.docx(27页珍藏版)》请在冰豆网上搜索。
Myeclipse整合ssh实例
Myeclipse整合ssh实例
新建一个webProject,命名为SSHDEMO,下面的ContextrootURL改为sshdemo,这时最后你访问的路径
在刚刚创建的SSH工程上面右击,在弹出的菜单中选择MyEclipse->AddStrutsCapabilities…,添加Struts支持,选择Struts1.2,修改下面的Basepackagefornewclasses的路径,这里定义为org.wuliu.ssh.struts
在SSH工程上面右击,在弹出的菜单中选择MyEclipse->AddSpringCapabilities…,添加Spring的支持。
,在弹出的对话框中选择Spring2,选择MyEclipseLibraries,按照图示选择相关的库。
由于Spring采取最小化库发布的方式,使得Spring的库文件彼此都是分离的,因而我们需要自己选择需要的库。
这里,AOP需要在添加Hibernate的事务处理时使用,Core是Spring的核心库,ORM/DAO/Hibernate3库作为Spring持久化的支持,Web允许Spring和Struts整合,其余保持原状,点击Next。
在这里添加Spring的配置文件,可以将Folder更改为Web-Root/WEB-INF目录。
这是为struts整合准备的。
其实,Spring的配置文件可以放在WEB-INF的任意目录中,具体的位置都需要在web.xml中进行配置。
这里仅仅采用最简便的方法,将配置文件放到WEB-INF下面
在DatabaseDriver对话框中按照如下配置选择数据库驱动。
首先选择DriverTemplate,在这里我们选择MySQL。
DriverName是以后配置时使用的驱动名字,用以区分驱动,这里使用MySQL即可。
然后根据实际情况填写URL,Username和Password。
点击AddJARs添加数据库驱动文件。
为方便配置,可以选择Savepassword保存密码。
配置完毕后Finish即可。
当配置完数据源后,就可以添加Hibernate支持了。
切换到MyEclipseJavaEnterprise视图,在SSH工程上面右击,在弹出的菜单中选择MyEclipse->AddHibernateCapabilities…,添加Hibernate的支持
在对话框中选择Springconfigurationfile,表示我们希望将Hibernate托管给Spring进行管理。
这是将Hibernate与Spring进行整合的基础
在出现的对话框中选择ExistingSpringconfigurationfile。
因为我们已经添加了Spring的配置文件,所以这里选择的是已存在的配置文件。
MyEclipse会自动找到存在的那个文件。
然后在SessionFactoryID中输入Hibernate的SessionFactory在Spring配置文件中的BeanID的名字,这里我们输入sessionFactory即可
在出现的对话框中的BeanId里面输入数据源在Spring中的BeanID的名字,这里我们输入dataSource。
然后在DBDriver里面选择我们刚刚配置好的MySQL,MyEclipse会将其余的信息自动填写到表格里面
在出现的对话框中取消CreateSessionFactoryclass。
至此我们已经完成了SSH的添加,但现在只是将所有需要的文件放到了一起,并没有完成所有的配置。
现在我们要完成的是Hibernate的反向工程。
我们知道,Hibernate提供了ORM(ObjectRelationMapping)机制,即将关系型数据库映射为面向对象的实现。
现在要做的是将数据库的表格映射为对象,这里会有大量的配置文档,但MyEclipse可以很方便的完成这些工作。
首先切换到MyEclipseDataBaseExplorer视图,在需要使用的数据表格上面点击右键,选择HibernateReverseEngineering...。
这里我们使用刚刚建立的ssh数据库中的ssh表。
在打开的对话框中修改Javasrcfolder为我们建立的/SSH/src,这里需要选择到src文件夹,并且需要填写Javapackage,这是MyEclipse生成的类所在的包,我们将其取名为obj。
然后选择JavaDataObject,建立POJO类。
然后选择JavaDataAccessObject。
其中,POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作。
这里会封装一些常用的操作,简化我们的编写。
填写完成后点击Next
此时SSH项目的目录结构如下所示。
其中的User.Java是MyEclipse生成的POJO类,是使用面向对象的Java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些MyEclipse自动生成的对数据库的操作。
新建一个接口类IUserDAO
packageorg.wuliu.ssh.dao;
importjava.util.List;
importorg.wuliu.ssh.obj.User;
publicinterfaceIUserDAO{
publicUserfindById(Integerid);
publicListfindByName(Objectname);
publicvoidsave(Useruser);
}
添加common-pool-1.4包
添加service包和impl包,调正文件结构,新建IUserService.java和UserService.java
packageorg.wuliu.ssh.service;
importorg.wuliu.ssh.obj.User;
publicinterfaceIUserService{
publicUsergetUserById(Integerid);
publicUsergetUserByName(Stringname);
publicvoidaddUser(Useruser);
}
packageorg.wuliu.ssh.service.impl;
importjava.util.List;
importorg.wuliu.ssh.dao.IUserDAO;
importorg.wuliu.ssh.obj.User;
importorg.wuliu.ssh.service.IUserService;
publicclassUserServiceimplementsIUserService{
privateIUserDAOuserDAO;
publicUsergetUserById(Integerid){
returnuserDAO.findById(id);
}
publicUsergetUserByName(Stringname){
Listlist=userDAO.findByName(name);
if(list.size()==0){
returnnull;
}else{
return(User)list.get(0);
}
}
publicvoidaddUser(Useruser){
userDAO.save(user);
}
publicIUserDAOgetUserDAO(){
returnuserDAO;
}
publicvoidsetUserDAO(IUserDAOuserDAO){
this.userDAO=userDAO;
}
}
添加Form,ActionandJSP在弹出的对话框中添加Usercase,然后点击Add生成Properties代码。
这会由MyEclipse自动生成相应的Form代码。
输入完成后选择JSP选项卡,选上CreateJSPform,修改路径
这个BaseAction类继承自ActionSupport类,后者是Spring中对应着Struts的Action的类。
ActionSupport类中提供了访问WebApplicationContext的简便方法,而后者是在web程序中获取Spring托管的类的上下文。
以后我们编写的Struts中的Action继承自这个BaseAction,就可以利用getBean在我们的Action中获取Spring托管的类。
packageorg.wuliu.ssh.struts.action;
importorg.springframework.web.context.WebApplicationContext;
importorg.springframework.web.context.support.WebApplicationContextUtils;
importorg.springframework.web.struts.ActionSupport;
publicclassBaseActionextendsActionSupport{
protectedObjectgetBean(Stringid){
WebApplicationContextctx=WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext());
returnctx.getBean(id);
}
}
为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容
修改LoginAction.java
/*
*GeneratedbyMyEclipseStruts
*Templatepath:
templates/java/JavaClass.vtl
*/
packageorg.wuliu.ssh.struts.action;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
importorg.wuliu.ssh.obj.User;
importorg.wuliu.ssh.service.IUserService;
importorg.wuliu.ssh.struts.form.LoginForm;
/**
*MyEclipseStruts
*Creationdate:
06-25-2008
*
*XDocletdefinition:
*@struts.actionpath="/login"name="loginForm"input="/login.jsp"scope="request"validate="true"
*/
publicclassLoginActionextendsBaseAction{
/*
*GeneratedMethods
*/
/**
*Methodexecute
*@parammapping
*@paramform
*@paramrequest
*@paramresponse
*@returnActionForward
*/
publicActionForwardexecute(
ActionMappingmapping,
ActionFormform,
HttpServletRequestrequest,
HttpServletResponseresponse){
LoginFormloginForm=(LoginForm)form;
Stringname=loginForm.getUsername();
Stringpassword=loginForm.getPassword();
Stringpurview=loginForm.getPurview();
ActionForwardforward=mapping.getInputForward();
IUserServiceservice=(IUserService)getBean("UserService");
UseruserFromDB=service.getUserByName(name);
if(userFromDB.getPassword().equals(password)&&userFromDB.getPurview().equals(purview))
{
forward=mapping.findForward("success");
}else{
forward=mapping.findForward("fail");
}
returnforward;
}
}
添加一个welcome.jsp页面
<%@pagecontentType="text/html;charset=utf-8"language="java"%>
<%@tagliburi="http:
//struts.apache.org/tags-html"prefix="html"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">