现在在Struts2和Spring的基础上把Hibernate集成进去,这里主要是和Spring结合,首先依照上一篇介绍下载jar包。
采用Hibernate后的一般的web处理过程:action-》service-》dao-》数据库连接(sesstionFactory)-》怎么连接(dataSource)
(1)定义依赖关系:我们可以先修改前面的contextConfig.xml(Spring的配置文件,告诉它类之间的依赖关系)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://localhost:3306/example"> </property> <property name="username" value="mzuser"></property> <property name="password" value="123456"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="mappingResources"> <value>com/mz/bean/UserBean.hbm.xml</value> </property> </bean> <bean id="userDao" class="com.mz.dao.UserDaoImpl"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="loginService" class="com.mz.service.LoginServiceImpl"> <property name="userDao"> <ref local="userDao"/> </property> </bean> <bean id="loginAction" class="com.mz.action.LoginAction"> <property name="loginService" > <ref local="loginService"/> </property> </bean> </beans>
显然可以看到其中sessionFactory和dataSource使用的是外部类,先放下,把我们自己需要完成的类完成
(2)修改LoginAction类:loginAction类调用loginService的方法,所以替换点前面的判断逻辑(改动很小):
package com.mz.action; import com.mz.service.ILoginService; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.ServletActionContext; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; /** * Created by hadoop on 15-9-7. */ public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; private ILoginService loginService; public void setLoginService(ILoginService loginService) { this.loginService = loginService; } public ILoginService getLoginService(){ return this.loginService; } public String execute(){ return SUCCESS; } public String login() throws IOException { try { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println(username + ":" + password); boolean login = loginService.userLogin(username, password); //主要修改内容 if(login){ response.getWriter().write("login success!"); response.getWriter().flush(); return SUCCESS; } else { response.getWriter().write("login failed!"); response.getWriter().flush(); return "login"; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); return "login"; } } }
(3)修改LoginServiceImpl类:该类需要调用Dao类访问数据库,所以定义内部属性IUserDao,并写set方法:
package com.mz.service; import com.mz.dao.IUserDao; /** * Created by hadoop on 15-9-8. */ public class LoginServiceImpl implements ILoginService { private IUserDao userDao; //IUserDao提供userLogin方法 public void setUserDao(IUserDao userDao) { //必须 this.userDao = userDao; } public boolean userLogin(String username, String password) { boolean login = userDao.userLogin(username,password); //修改部分 if(login){ return true; }else{ return false; } } }
(4)IUserDao接口
package com.mz.dao; /** * Created by hadoop on 15-9-9. */ public interface IUserDao { public boolean userLogin(String username, String password); }
(5)UserDaoImpl类:该类使用SessionFactory
package com.mz.dao; import com.mz.bean.UserBean; import org.hibernate.Session; import org.hibernate.SessionFactory; import javax.management.Query; import javax.transaction.Transaction; import java.util.List; /** * Created by hadoop on 15-9-9. */ public class UserDaoImpl implements IUserDao { private SessionFactory sessionFactory; // public void setSessionFactory(SessionFactory sessionFactory) { // this.sessionFactory = sessionFactory; } public boolean userLogin(String username, String password) { Session session = sessionFactory.openSession(); String hql = "from UserBean where username=? and password=?"; //hibernate查询语句 org.hibernate.Query query = session.createQuery(hql); query.setParameter(0, username); query.setParameter(1, password); //设置参数替换? System.out.println("from UserBean where username=" + username + " and password=" + password); List<UserBean> userBeans = query.list(); if(userBeans.size() != 0) { //有结果返回则登录成功 return true; } else { return false; } } }
(6)SessionFactory中在Hibernate的jar中有定义,为了能够使用dataResource类这里需要导入jar包,修改pom.xml
<dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>
rebuild工程,jetty:start运行,能够根据数据库中的用户名密码判断登录情况
相关内容:
(1)Web开发:Struts2 Spring Hibernate整合(一)——Struts2的使用
(2)Web开发:Struts2 Spring Hibernate整合(二)——Spring的使用
(3)Web开发:Struts2 Spring Hibernate整合(三)上——Hibernate的使用
相关推荐
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,很不容易。 不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
比较流行的一本书,在公司内很受欢迎 比较实用 下半部分,需与上半部分放在一起解压。
以下章节源码[03] [04] [05] [08] [10] [11] [12] [13] [14] [15] [16]
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
- **分层架构**:系统采用经典的三层架构,包括表示层(Web层,使用Struts2)、业务逻辑层(Service层,使用Spring)和数据访问层(DAO层,使用Hibernate)。每个层都有明确的职责,使得代码结构清晰,易于维护。 ...
轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发
如何整合这4个开源框架进行J2EE开发,如何基于MyEclipseIDE进行开发,J2EE开发的基础和基础环境搭配,Struts、Hibernate、Spring、Eclipse四个框架的使用,如何整合Struts+Hibernate+Spring+Eclipse框架。...
Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...
收集的Java Web整合开发实战:基于Struts 2+Hibernate+Spring-源代码,看到其他人下载币要的太多,给大家分享一下。 不是很全,但可以拿来参考了。 由于大小限制,还有另外一个包······
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
【SSH整合】指的是Struts2、Spring和Hibernate这三个开源框架的集成应用,它们在JavaEE企业级开发中占据着重要地位。Struts2是一个MVC框架,负责处理用户请求和控制应用程序流程;Spring是一个全面的后端解决方案,...
Struts2、Spring4和Hibernate4是Java Web开发中的三大主流框架,它们分别负责MVC模式中的表现层、业务层和服务层。这个最新的项目系统整合了这三个框架,旨在提供一个高效、灵活且易于维护的开发环境。下面将详细...
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
学习Spring Struts Hibernate 整合开发必看的书
J2EE 企业应用实战:Struts Spring Hibernate 整合开发.part2
struts2 spring hibernate 整合过程 希望能对你有帮助,谢谢
J2EE 企业应用实战:Struts Spring Hibernate 整合开发 文件过大``分2部分 此为Part2