zoukankan      html  css  js  c++  java
  • Struts+Spring+Hibernate整合

    这段笔记三两年前写的,一直因为一些琐事,或者搞忘记了,没有发。今天偶然翻出了它,就和大家一起分享下吧。

    1.导入jar包

    Struts的jar包:

    Spring的jar包:

    Hibernate的jar包:

    注意:只保留一个高版本的common-logging.jar包,Struts的jar包中struts2-spring-plugin-2.1.8.jar是必须要导入的,因为其是整合Struts和Spring的一个关键性jar包

    2.Hibernate和Spring的整合

    建议先整合Spring和Hibernate。

    2.1方法一 保留hibernate.cfg.xml文件

    Hibernate的hibernate.cfg.xml代码不变,如下示例:

    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>
    
    	<session-factory>
    		<property name="connection.driver_class">
    oracle.jdbc.driver.OracleDriver
    </property>
    		<property name="connection.url">
    jdbc:oracle:thin:@localhost:1521:orcl
    </property>
    		<property name="connection.username">admin</property>
    		<property name="connection.password">admin</property>
    		
    		<property name="hibernate.c3p0.max_size">20</property>
    		<property name="hibernate.c3p0.max_statements">1</property>
    		<property name="hibernate.c3p0.timeout">1800</property>
    		<property name="hibernate.c3p0.max_statements">50</property>
    		
    		<property name="hibernate.dialect">
    org.hibernate.dialect.Oracle10gDialect
    </property>
    		<property name="show_sql">true</property>
    		<property name="hibernate.hbm2ddl.auto">update</property>
    		
    		<mapping resource="com/wzm/bean/User.hbm.xml"/>
    		
    	</session-factory>
    
    </hibernate-configuration>

    Spring的application.xml文件整合Hibernate代码如下:

    <beans
    	xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="configLocation" value="classpath:hibernate.cfg.xml">
    		</property>
    	</bean>
    </beans>

    2.2 方法二 废弃使用hibernate.cfg.xml文件

    将数据库的配置放在Spring的配置文件application.xml文件中,代码如下:

    <beans
    	xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:p="http://www.springframework.org/schema/p"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    			http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    			http://www.springframework.org/schema/context
    			http://www.springframework.org/schema/context/spring-context-2.5.xsd
    			http://www.springframework.org/schema/tx
    			http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    			http://www.springframework.org/schema/aop 
    			http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    			
    	<context:component-scan base-package="com.wzm"/>
    	
    	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    	   <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
    	   <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
    	   <property name="user" value="admin"/>
    	   <property name="password" value="admin"/>
    <property name="maxPoolSize" value="20"/>
    	   <property name="minPoolSize" value="1"/>
    	   <property name="initialPoolSize" value="1"/>
    	   <property name="maxIdleTime" value="20"/>
    	</bean>
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource" ref="dataSource"/>
    		<property name="mappingResources">
    			<list>
    				<value>com/wzm/bean/User.hbm.xml</value>
    			</list>
    		</property>
    		<property name="hibernateProperties">
    			<value>
    				hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
    				hibernate.hbm2ddl.auto=update
    				hibernate.show_sql=true
    			</value>
    		</property>
    	</bean>
    </beans>

    2.3 使用properties文件提供数据库接口

    这里的接口并非Java中的接口,而是指提供可扩展的接入点,properties文件中的代码如下:

    URL=jdbc:oracle:thin:@localhost:1521:orcl
    DRIVER=oracle.jdbc.driver.OracleDriver
    USERNAME=admin
    PASSWORD=admin
    
    #URL=jdbc:jtds:sqlserver://localhost:1433/qhit02
    #DRIVER=net.sourceforge.jtds.jdbc.Driver
    #USERNAME=sa
    #PASSWORD=sa1234

    该文件中提供了Oracle11g和SQL Server两种数据库接口(接入点),甚至可以写入更多的数据库的信息,“#”是注销,即其后的代码不可用。
    Spring的application.xml中的配置代码如下:

    <beans
    	xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:p="http://www.springframework.org/schema/p"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 
    			http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    			http://www.springframework.org/schema/context
    			http://www.springframework.org/schema/context/spring-context-2.5.xsd
    			http://www.springframework.org/schema/tx
    			http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    			http://www.springframework.org/schema/aop 
    			http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
    	
    	<context:component-scan base-package="com.wzm"/>
    	<context:property-placeholder location="classpath:DBOption.properties"/>
    	
    	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    		<property name="driverClass" value="${DRIVER}"/>
    		<property name="jdbcUrl" value="${URL}"/>
    		<property name="user" value="${USERNAME}"/>
    		<property name="password" value="${PASSWORD}"/>
    		<property name="maxPoolSize" value="20"/>
    		<property name="minPoolSize" value="1"/>
    		<property name="initialPoolSize" value="1"/>
    		<property name="maxIdleTime" value="20"/>
    	</bean>
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="dataSource" ref="dataSource"/>
    		<property name="mappingResources">
    			<list>
    				<value>com/wzm/persistence/entiy/User.hbm.xml</value>
    			</list>
    		</property>
    		<property name="hibernateProperties">
    			<value>
    				hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
    				hibernate.hbm2ddl.auto=update
    				hibernate.show_sql=true
    			</value>
    		</property>
    	</bean>
    </beans>

    3.整合Struts和Spring

    整合Struts和Spring时,只需在WebRootWEB-INFweb.xml文件中加入Struts的过滤器和Spring的监听器即可,代码如下:

    <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>
      
      	<!-- 配置监听器 -->
      	<context-param>
        	<param-name>contextConfigLocation</param-name>
       		<param-value>
    classpath:application.xml
    </param-value>
     	 </context-param>
      	<listener>
       	 	<listener-class>
    org.springframework.web.context.ContextLoaderListener
    </listener-class>
     </listener>	
    

    (注意:配置多个Spring Bean文件时,这样写classpath:applicationContext.xml,classpath:bean.xml)


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Ubuntu下VSFTPD(五)(匿名FTP设置方法)
    Ubuntu下VSFTPD(六)(常见FTP命令及其功能) (
    ubuntu13.04装配oracle11gR2
    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT_数据库的几种锁
    oracle建索引的可选项
    Oracle自定义函数
    C# WinForm开发系列
    为C#自定义控件添加自定义事件
    python 爬虫抓取心得
    C# 正则表达式学习
  • 原文地址:https://www.cnblogs.com/GatsbyNewton/p/4776689.html
Copyright © 2011-2022 走看看