您好,欢迎访问三七文档
1Eclipse+MyEclipse整合Struts+Spring+Hibernate简单例子开发功能介绍:由用户输入用户的ID,输出用户的相关信息,包括用户名和毕业学校。前台包括两个jsp页面,index.jsp用来接受用户输入查询条件;result.jsp用来显示查询结果。数据库采用MySQL,创建user表:Createtableuser(IDint(11)primarykey,namevarchar(100),schoolvarchar(100));Insertintouservalues(0001,’matthew’,’YunNanUniversity’);Insertintouservalues(0002,’zhangzili’,’YunNanUniversity’);Insertintouservalues(0003,’yangxiaopeng’,’HuaNanUniversity’);环境:Eclipse3.1.2+MyEclipse4.1.1GA+MySql4.1.10一新建项目:login,方法参见我的另一篇日志:Struts+Spring+Hibernate之搭建Eclipse+MyEclipse开发环境。整个项目的结构如下:二为项目增加Struts、Spring、Hibernate功能。方法大致一样,细节会因为MyEclipse的版本会有点不一样。1增加Struts功能:右激项目名称》MyEclipse》AddStrutsCapabilities2接下来,只需要根据你的情况设置下Basepackagefornewclasses:如,com.lnic.struts。然后点finish即可。完成后,会在你的项目里面增加一些struts的jar包。32增加Spring功能,方法和前面一样。这里需要注意点选:CopycheckedLibrary…项,要不然在我这里会出现找不到build-path错误。4然后,选择applicationContext.xml文件的位置,选择WEB-INF文件夹下。即可。5这个时候,项目下的包结构又会增加一些jar包。3增加Hibernate功能。方法和前面的一样。配置如下图:678910到此,完成Hibernate功能增加。三创建代码:如下图结构在创建BaseAction.java过程中会出现importorg.springframework.web.context.WebApplicationContext;这个包没有加进来,所以要手工把它加进来:spring-web.jar,这个是myeclipse自带的有。如图:11四创建JSP页面:index.jsp和result.jsp.具体如下图:五部署项目和测试。项目部署方法请看我的另一篇日志:Struts+Spring+Hibernate之搭建Eclipse+MyEclipse开发环境12输入:如下图:显示结果如下:六详细代码:1com.lnic.dao包里面有两个类:UserDao.javapackagecom.lnic.dao;importjava.util.List;publicinterfaceUserDao{publicListgetName(Stringid);}UserDaoImpl.java/***数据访问对象,实现UserDao接口,并调用Hibernate的映射来获得用户的信息。*/packagecom.lnic.dao;importjava.sql.SQLException;importjava.util.List;importorg.hibernate.HibernateException;importorg.hibernate.Query;importorg.hibernate.Session;importorg.springframework.orm.hibernate3.HibernateCallback;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;13publicclassUserDaoImplextendsHibernateDaoSupportimplementsUserDao{publicUserDaoImpl(){super();}publicListgetName(finalStringid){returngetHibernateTemplate().executeFind(newHibernateCallback(){publicObjectdoInHibernate(Sessionsession)throwsHibernateException,SQLException{intstudID=Integer.parseInt(id);StringBuffersb=newStringBuffer(100);sb.append(selectuser);sb.append(fromUseruser);sb.append(whereuser.id=:id);Queryquery=session.createQuery(sb.toString());query.setInteger(id,studID);Listlist=query.list();returnlist;}});}}2com.lnic.hibernate包里面有个User.java的hibernate映射类。它的属性和数据库中的User表字段对应。packagecom.lnic.hibernate;importjava.io.Serializable;publicclassUserimplementsSerializable{privatejava.lang.Integerid;privatejava.lang.Stringname;privatejava.lang.Stringschool;publicUser(){}publicUser(java.lang.Integerid){this.setId(id);}publicjava.lang.IntegergetId(){returnid;14}publicvoidsetId(java.lang.Integerid){this.id=id;}publicjava.lang.StringgetName(){returnthis.name;}publicvoidsetName(java.lang.Stringname){this.name=name;}publicjava.lang.StringgetSchool(){returnthis.school;}publicvoidsetSchool(java.lang.Stringschool){this.school=school;}}User类的hibernate映射文件:user.hbm.xml?xmlversion=1.0encoding='UTF-8'?!DOCTYPEhibernate-mappingPUBLIC-//Hibernate/HibernateMappingDTD3.0//EN!--DONOTEDIT:Thisisageneratedfilethatissynchronized--!--byMyEclipseHibernatetoolintegration.--!--CreatedSunSep1717:28:36CST2006--hibernate-mappingpackage=com.lnic.hibernateclassname=Usertable=USERidname=idcolumn=IDtype=integergeneratorclass=assigned//idpropertyname=namecolumn=NAMEtype=string/propertyname=schoolcolumn=SCHOOLtype=string//class/hibernate-mapping3m.lnic.struts包里面有两个类:BaseAction.java和SearchAction.javaBaseAction.java,在这个类中继承了struts的action。并且覆盖了setServlet方法,在此方法中初始化Web应用上下文,获得Spring的Ioc容器,并在容器中获取UserDao接口的实现类的对象,然后使用该对象初始化本类中的成员变量userDao。可以参见applicationContext.xml配置文件。packagecom.lnic.struts;15importjavax.servlet.ServletContext;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionServlet;importorg.springframework.web.context.WebApplicationContext;importorg.springframework.web.context.support.WebApplicationContextUtils;importcom.lnic.dao.UserDao;publicclassBaseActionextendsAction{privateUserDaouserDao;publicvoidsetServlet(ActionServletactionServlet){super.setServlet(actionServlet);ServletContextservletContext=actionServlet.getServletContext();WebApplicationContextwac=WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);this.userDao=(UserDao)wac.getBean(userDao);}publicUserDaogetUserDao(){returnuserDao;}publicvoidsetStuDao(UserDaouserDao){this.userDao=userDao;}}SearchAction.java这个类继承了BaseAction,并覆盖了Action的execute方法,它是Struts的Action类中用来处理业务逻辑的方法,并将处理结果转发给下个页面,在本例子中,它直接调用BaseAction中的getUserDao方法获得userDao对象,并调用该对象的getName方法完成查询工作。packagecom.lnic.struts;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;16publicclassSearchActionextendsBaseAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletReques
本文标题:Eclipse+++MyEclipse整合+Struts+Spring+Hibernate+简单例子
链接地址:https://www.777doc.com/doc-4394780 .html