ssh整合:spring与hibernate的整合
来源:互联网 发布:mac不能用酷狗输入法么 编辑:程序博客网 时间:2024/05/16 09:38
ssh的整合主要是spring与hibernate + spring与struts的整合,struts的逻辑中使用业务层的对象只需使用spring的ioc得到需要的依赖对象。
一、spring与hibernate
spring与hibernate的整合有2种方式,一种是把hibernate的配置放在spring的配置中,一种是独立在spring外
hibernate独立在外:
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" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocations"> <value>classpath:hibernate.cfg.xml</value> </property> </bean> </bean> </beans>
使用注解:
<!-- sessionFactory定义 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><!--使用注解--> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> <property name="packagesToScan"> <list> <value>cn.jiabeis.s2shstudy.model</value> </list> </property>
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> <property name="connection.username">root</property> <property name="connection.password">***</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">10</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <property name="format_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <mapping resource="com/model/User.hbm.xml"/><!-- <mapping class="com.model.User"/>--> </session-factory></hibernate-configuration>
hibernate的配置整合在spring中:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property></bean><!-- 配置 hibernate sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <!--可使用proxool等来作为数据源--> <ref bean="dataSource" /> </property> <property name="mappingDirectoryLocations"> <!--可使用mappingResources直接写出配置文件的位置--> <list> <value>classpath:/config/hbm/</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.connection.release_mode">auto</prop> <prop key="hibernate.show_sql">true</prop> <prop key="connection.useUnicode">true</prop> <prop key="connection.characterEncoding">gbk</prop><!--出现中文乱码的问题 --> <prop key="hibernate.query.factory_class"> org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop> </props> </property></bean>
数据源的配置还可通过属性文件来获得:
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean>
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc/:mysql/://localhost/:3306/springjdbc.username=rootjdbc.password=31415926
通过Spring提供的HibernateTemplate操作数据库:
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property></bean>
事务管理:
<!-- 事务处理 --> <bean id ="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name ="sessionFactory"> <ref local ="sessionFactory" /> </property > </bean > <!-- 自动创建事务代理 --> <bean id ="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name ="transactionManager" ref ="transactionManager" /> <property name ="transactionAttributes"> <props > <prop key ="delete*"> PROPAGATION_REQUIRED</prop > <prop key ="add*"> PROPAGATION_REQUIRED</prop > <prop key ="update*"> PROPAGATION_REQUIRED</prop > <prop key ="save*"> PROPAGATION_REQUIRED</prop > <prop key ="find*"> PROPAGATION_REQUIRED,readOnly</prop > <prop key ="*"> PROPAGATION_REQUIRED</prop > </props > </property > </bean >
使用HibernateDaoSupport类:
@Component("logDAO") public class LogDAOImpl extends HibernateDaoSupport implements LogDAO {public void save(Log log) {this.getHibernateTemplate().save(log);}}
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="logDao" class="com.zchen.spring.LogDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean>
- ssh整合:spring与hibernate的整合
- SSH的整合,Spring与Hibernate整合,与Struts2整合,ssh整合
- ssh-spring与hibernate的整合
- 【SSH】Spring与Hibernate整合
- ssh整合(4)Spring与hibernate整合
- Spring与Hibernate的整合
- hibernate与spring的整合
- spring与hibernate的整合
- Hibernate与Spring的整合
- hibernate与spring的整合
- Spring与Hibernate的整合
- Spring与Hibernate的整合
- spring与Hibernate的整合
- spring与hibernate的整合
- ssh之hibernate+spring的整合
- ssh(spring springMVC hibernate)的整合
- 简单的ssh(spring+springmvc+hibernate)整合
- ssh整合!Struts.xml、hibernate与spring整合的applicationContext.xml、web.xml文件的配置!
- java内部类
- js方式的页面跳转
- sgu——340(字符串模拟)
- aspectj annotation- used in spring
- VMware+Ubuntu环境安装配置SLURM
- ssh整合:spring与hibernate的整合
- Nginx 常见应用
- Hanoi Tower 汉诺塔的简单分析/C
- QT下QMainWindow类与QWidget的关系
- 从Linux程序中执行shell(程序、脚本)并获得输出结果(转)
- oracle 行列测试
- Linux root用户与一般用户的区别
- spring autoproxy by annotation
- UML中类图的理解