`
ding43930053
  • 浏览: 41516 次
社区版块
存档分类
最新评论

struts2 hibernate spring c3p0整合 之集成spring

 
阅读更多
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<!-- 采用通配符方式,需要关闭DynamicMethodInvocation 为 false-->
	<constant name="struts.enable.DynamicMethodInvocation" value="false" /> 

	<package name="manager" extends="default">
		<!--自定义拦截器配置 -->
		<interceptors>
            <interceptor name="loginInterceptor" class="com.hrbkejia.interceptor.LoginInterceptor"/>
		</interceptors>
  
     	<!-- "用户登录Action" "*_*"<<<<这里使用的是通配符 -->
		<action name="*_*" class="{1}" method="{2}">
			<result name="login">/WEB-INF/jsp/UserLogin.jsp</result>
			<result name="success">/WEB-INF/jsp/main.jsp</result>
			<!-- <interceptor-ref name="defaultStack"/>  --> <!-- struts 内置的默认拦截器 -->
     		<!--<interceptor-ref name="loginInterceptor"/> --> <!-- struts 内置的默认拦截器 -->
		</action>
	</package>
</struts>


前提是struts2 和hibernate 已经已成。

第一步要引入spring 需要的jar包,我这里使用的sping2.0 ,在dist文件夹下引入spring.jar 和 \lib\c3p0下的

c3p0-0.9.0.4.jar。

第二步、改变Dao层数据库访问方法,采用spring的方法,看一下DaoUserLogin.java

package com.hrbkejia.dao.impl;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import org.springframework.orm.hibernate3.HibernateCallback;
import com.hrbkejia.bean.UserManager;
import com.hrbkejia.dao.UserManagerDao;
import com.hrbkejia.util.HibernateSessionFactory;

 

public class UserManagerDaoImpl extends HibernateDaoSupport implements UserManagerDao{
 

 /**
  * 按照用户名和密码查询登录用户实例
  */
 public UserManager queryUserManager(final UserManager userManager) throws Exception {
  
  List list = this.getHibernateTemplate().find(
    "from com.hrbkejia.bean.UserManager as user where user.userName=? and user.passWord=?",
    new String[]{userManager.getUserName(),userManager.getPassWord()});
  if(list != null && list.size() >= 1){
   return (UserManager)list.get(0);
  }
  return null;
   
 }
 
 public static void main(String [] args){
  UserManagerDaoImpl s = new UserManagerDaoImpl();
  UserManager userManager = new UserManager();
  userManager.setUserName("admin");
  userManager.setPassWord("admin");
  try {
   //s.saveUserManager(userManager);
   UserManager u = (UserManager)s.queryUserManager(userManager);
   System.out.println(u.getUserName());
   
  
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 public boolean saveUserManager(final UserManager userManager) throws Exception {

  try{
   this.getHibernateTemplate().save(userManager);
  }catch(Exception e){
   if(e != null){
    e.printStackTrace();
    return false;
   }
  }
  return true;
 }


 public List queryAllUserManager() throws Exception {
  return (List<UserManager>)this.getHibernateTemplate().find(
    "from com.hrbkejia.bean.UserManager as user ");
  
 }
 public List<UserManager> queryAllUserManager(final int startNum, final int endNum) throws Exception {
  return (List<UserManager>)getHibernateTemplate().executeFind(new HibernateCallback() { 
   public Object doInHibernate(Session session) 
   throws HibernateException, SQLException { 
   Query query = session.createQuery("from com.hrbkejia.bean.UserManager"); 
   query.setFirstResult(startNum); 
   query.setMaxResults(endNum); 
   List list = query.list(); 
   return list; 
   } 
   }); 
 }

 public boolean deleteUserManager(UserManager userManager) throws Exception {
  
  try{
   this.getHibernateTemplate().delete(userManager);
  }catch(Exception e){
   if(e != null){
    e.printStackTrace();
    return false;
   }
  }
  return true;
 }

 public boolean updateUserManager(UserManager userManager) throws Exception {
  try{
   this.getHibernateTemplate().update(userManager);
  }catch(Exception e){
   if(e != null){
    e.printStackTrace();
    return false;
   }
  }
  return true;
 }

 public boolean updateOrSaveUserManager(UserManager userManager)
   throws Exception {
  try{
   this.getHibernateTemplate().saveOrUpdate(userManager);
  }catch(Exception e){
   if(e != null){
    e.printStackTrace();
    return false;
   }
  }
  return true;
 }

 public int getCount() throws Exception {
  List list = this.getHibernateTemplate().find("select count(*) from UserManager");
  if(list != null && list.size() >=0){
   return Integer.parseInt(list.get(0).toString());
  }
  return 0;
 }


}


创建webRoot/WEB-INF/下创建applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"	 
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd">

	

	<!-- 采用c3p0数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/×××××××"/>
		<property name="driverClass" value="com.mysql.jdbc.Driver"/>
		<property name="user" value="root"/>
		<property name="password" value="×××"/>
		<!-- 配置数据库连接池,最大连接数 -->
		<property name="maxPoolSize" value="20"/>
		<!-- 配置数据库连接池,最小连接数 -->
		<property name="minPoolSize" value="1"/>
		<!-- 指定数据库连接池的初始化连接数 -->
		<property name="initialPoolSize" value="1"/>
		<!-- 指定数据库连接池的连接的最大空闲时间 -->
		<property name="maxIdleTime" value="10"/>
	</bean>
  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="mappingResources">
			<list>
					<value>com/hrbkejia/bean/UserManager.hbm.xml</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<!-- 
				采用MySql作为数据库系统,故使用MySQL方言
					<prop key="hibernate.hbm2ddl.auto">update</prop>
				 -->
				<prop key="show_sql">true</prop>
			<prop key="hibernate.hbm2ddl.auto">crate</prop>
				<prop key="hibernate.jdbc.batch_size">20</prop>
			</props>
		</property>
	</bean>
	


<!-- 定义事务管理器(声明式的事务) -->  
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

	<!-- 继承HibernateDaoSupport类,setSessionFactory()在HibernateDaoSupport类中已经做定义,所以不用重写setSessionFactory() -->
	<bean id="userManagerDaoBean" class="com.hrbkejia.dao.impl.UserManagerDaoImpl">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	
	<!-- 用户登录Bean -->
	<bean id="login" class="com.hrbkejia.Action.UserLoginAction" scope="prototype" >
		<property name="userManagerDao" ref="userManagerDaoBean"/>
	</bean>
	
</beans>


在web.xml 添加启动spring 监听web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <!-- <display-name>Struts Blank</display-name> -->


	<listener>
 		<!-- spring2.0 监听-->
  		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 	</listener>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

接下来引入struts2对 spring 支持的插件“struts2-spring-plugin-2.3.15.3.jar ”

接下来配置struts2.xml文件,这里使用的通配符


分享到:
评论

相关推荐

    struts2+HIbernate+Spring整合所需jar包

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们各自在Web应用程序的不同层面上发挥作用,而将它们整合在一起,通常称为SSH(Struts2、Spring、Hibernate)或S2SH,可以构建出功能强大、结构清晰的企业级...

    SSH整合学习笔记之struts2+spring+hibernate+c3p0源码

    SSH整合是Java Web开发中的一个经典组合,由Struts2、Spring和Hibernate三大框架组成,再加上C3P0作为数据库连接池,形成了高效且灵活的应用架构。本学习笔记将深入探讨这四个组件如何协同工作,构建出强大的企业级...

    struts+spring+hibernate基础整合包+数据库Mysql+C3p0

    数据库的链接包是MySQl数据库,链接使用的C3P0 SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架 现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的...

    SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip

    在本项目"SSH - SpringMVC4 + Spring4 + Hibernate4 + c3p0 + Mysql.zip"中,开发者使用了SpringMVC4作为表现层,Spring4作为控制层和服务层,Hibernate4作为持久层,c3p0作为数据库连接池,以及MySQL作为数据库。...

    struts2hibernatespring整合jar

    Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自解决应用程序的不同问题,而S2SH(Struts2、Spring、Hibernate)整合则旨在提供一个完整的MVC(Model-View-Controller)架构,帮助开发者更高效地...

    SSH - Struts2 + Spring4 + Hibernate4 + c3p0 + Mysql.rar

    这个项目可能涵盖了用户登录注册、数据展示、CRUD操作等基本功能,通过Struts2接收和响应用户请求,Spring4管理业务逻辑和依赖,Hibernate4处理数据持久化,c3p0优化数据库连接,MySQL存储所有数据。开发者可以通过...

    ssh框架整合jar包(struts2+spring4+hibernate4)

    通过这样的整合,开发者可以利用Struts2处理前端请求,Spring进行业务逻辑管理和依赖注入,Hibernate进行数据持久化,C3P0优化数据库连接管理,从而构建出高效、稳定的Java Web应用。在实际开发中,还需要考虑错误...

    Struts2+Spring3+Hibernate4整合的jar包

    Struts2、Spring3和Hibernate4是Java Web开发中的三大框架,它们的整合极大地提高了开发效率,简化了项目结构,并提供了强大的功能。SSH(Struts2、Spring、Hibernate)是企业级应用开发的常见选择,这主要是因为...

    最新版本的Struts2+Spring4+Hibernate4三大框架整合(改进:增加整合Quartz和Gson)

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6 + Quartz2.2.1。 此外,还有:Quartz、JUnit4、Log4j、SLF4J、...

    spring4.1.6+hibernate4.3.9+struts2.3.20整合

    整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.20 + Spring4.1.6 + Hibernate4.3.9。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...

    struts22.3.4.1+hibernate4.1.6+spring3.1.2整合jar包

    Struts2、Hibernate和Spring(SSH)是Java开发中非常流行的三大开源框架,它们的集成极大地提升了企业级应用的开发效率和灵活性。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要负责处理HTTP请求和展示视图...

    ssh框架整合详细步骤(spring+struts2+hibernate)

    ### SSH框架整合详细步骤(spring+struts2+hibernate) #### 一、整合概述 在现代Web应用开发中,SSH(Struts2、Spring、Hibernate)框架因其各自独特的功能和优势,常被组合使用以构建高效、稳定且易于维护的系统...

    spring +struts2+hibernate3整合的jar包集合

    这个"spring + struts2 + hibernate3整合的jar包集合"提供了这三个框架的核心库,以及c3p0和DBCP数据库连接池的依赖,使得开发者可以快速搭建一个完整的MVC架构应用。 Spring框架是一个全面的后端解决方案,它提供...

    SSH整合学习笔记之spring与hibernate整合(二)之c3p0

    SSH整合是Java开发中一种常见的技术栈组合,主要包括Spring、Struts和Hibernate这三个框架的集成。在本学习笔记中,我们将重点关注Spring与Hibernate的整合,特别是如何利用c3p0作为数据库连接池来提高应用程序的...

    Struts2 + Spring3 + Hibernate3.5 整合(集成测试配套jar包更新构建脚本使用说明)

    proxool(据说是dbcp和c3p0三者中最优秀的)做连接池;使用jquery的ajax实现仿google人名自动补全;头像上传剪切压缩处理。 包含有完整的jar包和源代码,可以直接下载编译部署和运行,这是专门为我们实验室定制开发...

    struts2 hibernate3.2 spring2.5集成步骤

    ### Struts2、Hibernate3.2与Spring2.5集成步骤详解 在Java Web开发领域,Struts2、Hibernate和Spring三者结合是常见的企业级应用架构方案之一。本篇文章将详细阐述如何在MyEclipse6.5环境下,通过Tomcat6.0服务器...

    spring_struts2_hibernate_mysql集成

    标题中的"spring_struts2_hibernate_mysql集成"指的是在Java Web开发中,将Spring、Struts2、Hibernate这三大主流框架与MySQL数据库进行整合。这是一个常见的企业级应用开发模式,用于构建高效、可维护的Web应用程序...

    spring4.0.2+hibernate4.5.1+struts2.3.16.1+c3p0最新集成

    本集成项目基于Spring 4.0.2、Hibernate 4.5.1和Struts2 2.3.16.1,结合c3p0数据库连接池,提供了一种高效、稳定的开发环境。下面我们将详细探讨这些框架的核心功能和集成过程。 **Spring框架**:Spring是Java企业...

    Struts2+Spring2.5+Hibernate3.3整合开发之Sring与Hibernate整合

    一、整合开发时Hibernate、Spring需要的JAR文件。 hibernate核心安装包下的(下载路径:http://www.hibernate.org/,点击“Hibernate Core”右边的“Downloads”): hibernate3.jar lib\bycode\cglib\hibernate-...

    struts2hibernate4spring4项目搭建需要的jar包(比较新的)

    Struts2、Hibernate4和Spring4是Java Web开发中经典的三大框架,它们的整合使用,被称为S2SH框架。这个组合提供了模型-视图-控制器(MVC)架构,持久层管理和依赖注入等功能,极大地提高了开发效率。在这个“struts2...

Global site tag (gtag.js) - Google Analytics