《Eclipse+MyEclipse整合Struts+Spring+Hibernate简单例子开发.pdf》由会员分享,可在线阅读,更多相关《Eclipse+MyEclipse整合Struts+Spring+Hibernate简单例子开发.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1Eclipse+MyEclipse整合 Struts+Spring+Hibernate简单例子开发功能介绍:由用户输入用户的ID,输出用户的相关信息,包括用户名和毕业学校。前台包括两个 jsp 页面,index.jsp 用来接受用户输入查询条件;result.jsp 用来显示查询结果。数据库采用 MySQL,创建 user表:Create table user(ID int(11)primary key,name varchar(100),school varchar(100);Insert into user values(0001,matthew,YunNan University );
2、Insert into user values(0002,zhangzili,YunNan University );Insert into user values(0003,yangxiaopeng,HuaNan University );环境:Eclipse3.1.2+MyEclipse4.1.1GA+MySql4.1.10 一 新建项目:login,方法参见我的另一篇日志:Struts+Spring+Hibernate之搭建 Eclipse+MyEclipse 开发环境。整个项目的结构如下:二 为项目增加Struts、Spring、Hibernate 功能。方法大致一样,细节会因为MyE
3、clipse 的版本会有点不一样。1 增加 Struts 功能:右激项目名称MyEclipse Add Struts Capabilities 2接下来,只需要 根据 你的情况设置 下 Base package for new classes:如,com.lnic.struts。然后点 finish 即可。完成后,会 在你 的项目 里面增加一 些 struts 的 jar 包。32 增加 Spring 功能,方法和前面一样。这里 需要 注意 点选:Copy checked Library 项,要不然在 我这里 会出 现找 不到 build path 错误。4然后,选择 applicationC
4、ontext.xml文 件的 位置,选择 WEB-INF 文件夹下。即可。5这个 时候,项目下的包结构又会增加一 些 jar 包。3 增加 Hibernate 功能。方法和前面的一样。配置 如下 图:678910到此,完成 Hibernate 功能增加。三 创建 代码:如下 图结构在创建BaseAction.java过程中会出现import org.springframework.web.context.WebApplicationContext;这个包 没有加 进来,所以 要手工把它加进 来:spring-web.jar,这个是 myeclipse 自带 的有。如 图:11 四 创建 JSP
5、页面:index.jsp 和 result.jsp.具体 如下 图:五 部署 项目和 测试。项目 部署 方法 请看 我的另一篇日志:Struts+Spring+Hibernate之搭建 Eclipse+MyEclipse 开发环境12输入:http:/localhost:8080/login/如下 图:显示结果如下:六 详细代码:1 com.lnic.dao包里面有两个 类:UserDao.java package com.lnic.dao;import java.util.List;public interface UserDao public List getName(String id)
6、;UserDaoImpl.java/*数据访问对象,实现 UserDao接口,并调用 Hibernate的映射来获得用户的信息。*/package com.lnic.dao;import java.sql.SQLException;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import org.springframework.orm.hibernate3.HibernateCallback;import
7、 org.springframework.orm.hibernate3.support.HibernateDaoSupport;13public class UserDaoImpl extends HibernateDaoSupport implements UserDao public UserDaoImpl()super();public List getName(final String id)return getHibernateTemplate().executeFind(new HibernateCallback()public Object doInHibernate(Sessi
8、on session)throws HibernateException,SQLException int studID=Integer.parseInt(id);StringBuffer sb=new StringBuffer(100);sb.append(select user);sb.append(from User user);sb.append(where user.id=:id);Query query=session.createQuery(sb.toString();query.setInteger(id,studID);List list=query.list();retur
9、n list;);2 com.lnic.hibernate包里面有个User.java的 hibernate映射类。它的属性和数据库中的User表字段对应。package com.lnic.hibernate;import java.io.Serializable;public class User implements Serializable private java.lang.Integer id;private java.lang.String name;private java.lang.String school;public User()public User(java.lang
10、.Integer id)this.setId(id);public java.lang.Integer getId()return id;14 public void setId(java.lang.Integer id)this.id=id;public java.lang.String getName()return this.name;public void setName(java.lang.String name)this.name=name;public java.lang.String getSchool()return this.school;public void setSc
11、hool(java.lang.String school)this.school=school;User类的 hibernate映射文件:user.hbm.xml 3 m.lnic.struts包里面有两个类:BaseAction.java和 SearchAction.java BaseAction.java,在这个类中继承了struts的 action。并且覆盖了setServlet方法,在此方法中初始化Web应用上下文,获得Spring的 Ioc容器,并在容器中获取UserDao接口的实现类的对象,然后使用该对象初始化本类中的成员变量userDao。可以参见applicationConte
12、xt.xml配置文件。package com.lnic.struts;15import javax.servlet.ServletContext;import org.apache.struts.action.Action;import org.apache.struts.action.ActionServlet;import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import
13、com.lnic.dao.UserDao;public class BaseAction extends Action private UserDao userDao;public void setServlet(ActionServlet actionServlet)super.setServlet(actionServlet);ServletContext servletContext=actionServlet.getServletContext();WebApplicationContext wac=WebApplicationContextUtils.getRequiredWebAp
14、plicationContext(servletContext);this.userDao=(UserDao)wac.getBean(userDao);public UserDao getUserDao()return userDao;public void setStuDao(UserDao userDao)this.userDao=userDao;SearchAction.java这个类继承了BaseAction,并覆盖了Action的 execute方法,它是 Struts的 Action类中用 来处理业务逻辑的方法,并将处理 结果 转发给下个 页面,在本例子中,它直接调 用 BaseA
15、ction中的getUserDao方法获得userDao对象,并 调用该对象的getName方法完成查询工作。package com.lnic.struts;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.s
16、truts.action.ActionMapping;16public class SearchAction extends BaseAction public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest req,HttpServletResponse res)String id=req.getParameter(factor);List list=this.getUserDao().getName(id);req.setAttribute(Students,list);retur
17、n mapping.findForward(result);4 前台 jsp页面:index.jsp和 result.jsp index.jsp 请输入用户 ID:result.jsp 您查询的用户信息如下:学生编号:学生姓名:学生专业:5 配 置文 件:applicationContext.xml和hibernate.cfg.xml,struts-config.xml,web.xml Spring的配置文件:applicationContext.xml,在这个配 置文件,配 置了个数据 源组件:dataSource,用来获取数据库 源,它是个 DBCP 的 BasicDataSource对象
18、,其属性根据不同的数据库,会有不同。另外,在 sessionFactory这个 Bean组件中配 置了 Spring 的 LocalSessionFactoryBean类的对象,该类包 装了 Hibernate的 SessionFactory类。在这个 组件中,我们 可以配 置该组件的数据 源以及 Hibernate相关属性,比如数据库方言、hibernate映射文件 所在的包 路径。org.hibernate.dialect.MySQLInnoDBDialecttrueclasspath:/com/lnic/hibernateStruts配置文件:struts-config.xml。配 置
19、FormBean组件,这里使用的 是动态 FormBean。它的属性“factor”必须与index.jsp和 Form中的属性 名字一样。这个 地方配置行为 映射,指定 映射路径,此处为“/search”,它必须和index.jsp的form19的action 属性 相对应。指定 用来处理 该行为 的Action 类。Web配置文件:web.xml contextConfigLocation/WEB-INF/applicationContext.xmlorg.springframework.web.context.ContextLoaderListener actionorg.apache.struts.action.ActionServletconfig/WEB-INF/struts-config.xmldebug 3detail32action*.do20Hibernate配置文件:hibernate.cfg.xml rootjdbc:mysql:/localhost:3306/testorg.hibernate.dialect.MySQLMyISAMDialectmysql 131421 com.mysql.jdbc.Driver