您好,欢迎访问三七文档
1基于Struts2+Spring3.0+Hibernate3.3的整合实验(MyEclipse8.6版)实验步骤准备数据库和DBdriver(同前面的实验)1)在SQLServer200x中创建数据库test和表users。CREATEDATABASEtest;USEtest;GOCREATETABLE[dbo].[users]([id][int]IDENTITY(1,1)primarykey,[username][varchar](20)NOTNULL,[password][varchar](20)NULL)go2)在MyEclipseDatabaseExplorerPerspective窗口下创建一个新的连接驱动(Createanewconnectiondriver)DN。图0项目工程结构总览图2一.创建工程,增加Struts2、Spring2.x和Hibernate3.2功能1.新建web工程SSHD2.填加Struts功能(直接选struts2.1)图1这里要注意:在选URLPattern时要选择第三个,不要选“*.action”。3图2图33.填加Spring功能(勾选2个库Spring3.0CoreLibraries和Spring3.0WebLibraryis),注意选择将检测到的库内容拷贝到项目文件夹。4图4填加Spring功能示意图选择新建Springbeanconfigurationfile,文件名为applicationContext.xml4.添加Hibernate功能(1)默选的两个包+SpringJDBC(其他会自动勾选)图55图6(2)选择Hibernate工具使用的配置文件类型为springconfiguration。图7选择Hibernate工具使用的配置文件(2)SpringDataConnectiondetail中的BeanId为dataSource。6(3)在创建Hibernate会话工厂时,选择不要创建sessionFactory类。图8不要创建会话工厂二.创建ORM、交互值对象、DAO1.在com.domain中存放Hibernate产生的映射文件和持久类。7图9图108图112.在com.bean包中,编写值对象的类User.javapackagecom.bean;publicclassUser{privateStringname;privateStringpassword;publicUser(){}publicUser(Stringname,Stringpassword){this.name=name;this.password=password;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;9}}3.在com.dao包中,创建DAO接口,如图12.图12UserDAOpackagecom.dao;importjava.util.List;importcom.domain.Users;publicinterfaceUserDAO{/***根据id查找用户*@paramid需要查找的用户id*/Usersget(Integerid);/***增加用户*@paramuser需要增加的用户*/voidsave(Usersuser);/***修改用户*@paramuser需要修改的用户*/voidupdate(Usersuser);/***删除用户*@paramid需要删除的用户id*/voiddelete(Integerid);/***删除用户*@paramuser需要删除的用户*/voiddelete(Usersuser);/***查询全部用户10*@return获得全部用户*/ListUsersfindAll();/***根据用户名,密码查找用户*@paramusername查询所需的用户名*@parampass查询所需的密码*@return对应的用户*/UsersfindUserByNameAndPass(Stringusername,Stringpassword);}4.在com.dao.impl中创建DAO实现类。如图13.图13userDAO实现类自动产生的代码如下://因为它实现UserDAOpackagecom.dao.impl;importjava.util.List;importcom.dao.UserDAO;importcom.domain.Users;publicclassUserDAOImplimplementsUserDAO{publicvoiddelete(Integerid){//TODOAuto-generatedmethodstub}publicvoiddelete(Usersuser){//TODOAuto-generatedmethodstub}publicListUsersfindAll(){//TODOAuto-generatedmethodstubreturnnull;}publicUsersfindUserByNameAndPass(Stringusername,Stringpassword){11//TODOAuto-generatedmethodstubreturnnull;}publicUsersget(Integerid){//TODOAuto-generatedmethodstubreturnnull;}publicvoidsave(Usersuser){//TODOAuto-generatedmethodstub}publicvoidupdate(Usersuser){//TODOAuto-generatedmethodstub}}填写逻辑后的代码如下:packagecom.dao.impl;importjava.util.List;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;importcom.dao.UserDAO;importcom.domain.Users;publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{/***根据id查找用户*@paramid需要查找的用户id*/publicUsersget(Integerid){return(Users)getHibernateTemplate().get(Users.class,id);}/***增加用户*@paramuser需要增加的用户12*/publicvoidsave(Usersuser){getHibernateTemplate().save(user);}/***修改用户*@paramuser需要修改的用户*/publicvoidupdate(Usersuser){getHibernateTemplate().saveOrUpdate(user);}/***删除用户*@paramid需要删除的用户id*/publicvoiddelete(Integerid){getHibernateTemplate().delete(getHibernateTemplate().get(Users.class,id));}/***删除用户*@paramuser需要删除的用户*/publicvoiddelete(Usersuser){getHibernateTemplate().delete(user);}/***查询全部用户*@return获得全部用户*/publicListfindAll(){returngetHibernateTemplate().find(fromUsers);}13/***根据用户名,密码查找用户*@paramusername查询所需的用户名*@parampass查询所需的密码*@return对应的用户*/publicUsersfindUserByNameAndPass(Stringusername,Stringpass){String[]args={username,pass};Listul=getHibernateTemplate().find(fromUsersauwhereau.username=?andau.password=?,args);if(ul.size()==1){return(Users)ul.get(0);}returnnull;}}三.业务逻辑层设计与实现1.在com.service包中创建业务逻辑层接口,如图6.图6ActionManager接口//ActionManager源码如下packagecom.service;publicinterfaceActionManager{/***根据用户名,密码验证登录是否成功*@paramusername登录所输入的用户名*@parampassword登录的密码*/IntegervalidLogin(Stringusername,Stringpassword);}2.在com.service.impl包中创建业务逻辑层接口的实现类,如图14.图14ActionManager实现接口14packagecom.service.impl;importcom.dao.UserDAO;importcom.domain.Users;importcom.service.ActionManager;publicclassActionManagerImplimplementsActionManager{privateUserDAOuserDAO;publicvoidsetUserDAO(UserDAOuserDAO){this.userDAO=userDAO;}publicIntegervalidLogin(Stringusername,Stringpassword){try{Usersuser=userDAO.findUserByNameAndPass(username,password);if(user!=null){returnuser.getId();}}catch(Exceptione){System.out.println(e.getMessage());}returnnull;}}四.控制层设计与实现1.Action的创建(1)在com.action包中创建Action。如图15.图15登录Action//LoginAction源码如下:packagecom.action;15importcom.service.ActionManager;importcom.opensymphony.xwork2.ActionSupport;publicclassLoginActionextendsActionSupport{privatestaticfinallongserialVersionUID=1L;protectedActionManagermgr;privateStringusername;privateStringpassword;publicStringexecute()throwsException{if(username.equals()||username==null){returninput;}IntegeruserId=mgr.validLogin(username,password);if(userId!=null){returnSUCCESS;}else{addActionError(用户名/密码不匹配);returninput;}}publicStringge
本文标题:Struts2+Spring+Hibernate整合环境搭建_myeclipse 8.6
链接地址:https://www.777doc.com/doc-5946084 .html