- 浏览: 155658 次
- 性别:
- 来自: 奥克兰
文章分类
最新评论
-
u012625419:
...
CXF之用spring配置服务端和客户端实例(转) -
bambooshangye:
CXF之用spring配置服务端和客户端实例(转) -
最佳蜗牛:
写的很好,谢谢!
tomcat下的server.xml文件和context.xml (转) -
mohaowen1989:
亲 有中文版的么?在grails基础上的spring-secu ...
Simplified Spring Security with Grails(转) -
douhongyang:
挺好,,思路很清晰,
spring security详解教程 (转)
Spring与Hibernate大致有两种组合方式,主要区别是一种是在Hibernate中的hibernate.cfg.xml中配置数据源,一种 是借助Spring的jdbc方式在Spring的applicationContext.xml文件中配置数据源,然后在Spring配置 sessionFactory的bean有些区别
下面大致的说明一下
第一种
1.hibernate.cfg.xml文件
<xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration SYSTEM "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriverproperty> <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursorproperty> <property name="connection.username">saproperty> <property name="connection.password">serverproperty> <property name="show_sql">trueproperty> <mapping resource=""/> </session-factory> <hibernate-configuration>
2.在spring配置sessionFactory
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/>
或者实现hibernate零配置
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> <property name="packagesToScan" value="com/wch/entity/"></property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/>
第二种
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursor"/> <property name="username" value="sa"/> <property name="password" value="server"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" value="dataSource"></property> <property name="mappingResources"> <list> <value>user.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/>
或者实现hibernate的零配置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/> <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=acegi;SelectMethod=cursor"/> <property name="username" value="sa"/> <property name="password" value="server"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" value="dataSource"></property> <property name="packagesToScan" value="com/wch/entity/"></property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <tx:annotation-driven transaction-manager="txManager"/>
下面是一些配置例子
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- dataSource --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"> </property> <property name="url" value="jdbc:microsoft:sqlserver://192.168.0.9:1433;databaseName=dbxx;"> </property> <property name="username" value="sa"></property> <property name="password" value="11111111"></property> </bean> <!--hibernate事务--> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <!-- 基础事务代理 --> <bean id="baseTxProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref local="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED,-Throwable</prop> <prop key="remove*"> PROPAGATION_REQUIRED,-Throwable </prop> <prop key="merge">PROPAGATION_REQUIRED,-Throwable</prop> <prop key="update">PROPAGATION_REQUIRED,-Throwable</prop> <prop key="do*">PROPAGATION_REQUIRED,-Throwable</prop> </props> </property> </bean> <!-- sqlMapClient --> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>WEB-INF/classes/sql-map-config-sqlserver.xml</value> </property> </bean> <!-- Hibernate的sessionFactory工厂 --> <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.SQLServerDialect</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.format_sql">false</prop> <prop key="hibernate.use_sql_comments">false</prop> <!-- 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树设置最大深度. 值为0意味着将关闭默认的外连接抓取 --> <prop key="hibernate.max_fetch_depth">3</prop> <!-- 为Hibernate关联的批量抓取设置默认数量 --> <prop key="hibernate.default_batch_fetch_size">8</prop> <!-- 强制Hibernate按照被更新数据的主键,为SQL更新排序。这么做将减少在高并发系统中事务的死锁。 --> <prop key="hibernate.order_updates">true</prop> <!-- session在事务完成后将被自动清洗(flush) --> <prop key="hibernate.transaction.flush_before_completion">true</prop> <!-- Oracle限制那些通过JDBC驱动传输的字节数组的数目. 如果你希望使用二进值 (binary)或 可序列化的 (serializable)类型的大对象, 你应该开启 hibernate.jdbc.use_streams_for_binary属性. --> <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop> </props> </property> <property name="mappingResources"> <list> <value>com/xxx/cqry/domain/Client.hbm.xml</value> </list> </property> </bean> <!-- locator --> <bean name="cqry.locator" class="com.xxx.cqry.server.ServerLocator"> <property name="clientServer"> <ref local="clientServer" /> </property> </bean> <!-- daoFacade --> <bean id="daoFacade" class="com.xxx.cqry.dao.DaoFacade"> <property name="clientDao"> <ref local="clientDao" /> </property> </bean> <bean id="baseDao" class="com.xxx.cqry.dao.BaseDAO"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="sqlMapClient"> <ref local="sqlMapClient" /> </property> </bean> <bean id="clientDao" class="com.xxx.cqry.dao.ClientDAO" parent="baseDao"></bean> <!-- baseServer --> <bean id="baseServer" class="com.xxx.cqry.server.impl.BaseServerImpl"> <property name="daoFacade"> <ref local="daoFacade" /> </property> </bean> <bean id="clientServer" parent="baseTxProxy"> <property name="target"> <bean class="com.xxx.cqry.server.impl.ClientServerImpl" parent="baseServer" /> </property> </bean> </beans>
下面是PostgresSQL and MySQL hibernate.cfg.xml examples
PostgreSQL Version: <?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> <property name="connection.url">jdbc:postgresql://localhost/firsthibernate</property> <property name="connection.username">postgres</property> <property name="connection.driver_class">org.postgresql.Driver</property> <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> <property name="connection.password">p</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <!-- thread is the short name for org.hibernate.context.ThreadLocalSessionContext and let Hibernate bind the session automatically to the thread --> <property name="current_session_context_class">thread</property> <!-- this will show us all sql statements --> <property name="hibernate.show_sql">true</property> <!-- mapping files --> <mapping resource="de/laliluna/example/Honey.hbm.xml" /> </session-factory> </hibernate-configuration> MySQL Version: <?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> <property name="connection.url">jdbc:mysql://localhost/firsthibernate</property> <property name="connection.username">root</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.password">r</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> <!-- thread is the short name for org.hibernate.context.ThreadLocalSessionContext and let Hibernate bind the session automatically to the thread --> <property name="current_session_context_class">thread</property> <!-- this will show us all sql statements --> <property name="hibernate.show_sql">true</property> <!-- mapping files --> <mapping resource="de/laliluna/example/Honey.hbm.xml" /> </session-factory> </hibernate-configuration>
发表评论
-
Spring MVC中修改校验的异常信息
2011-04-06 13:25 1657Spring MVC中修改校验的异常信息 原文转自: ... -
Spring 3之MVC & Security简单整合开发(三)
2011-03-01 11:01 1267为了方便学习,原文转自http://sarin.iteye.c ... -
Spring 3之MVC & Security简单整合开发(二)
2011-03-01 10:59 2084为了方便学习,原文出自http://sarin.iteye.c ... -
Spring 3之MVC & Security简单整合开发(一)(转)
2011-03-01 10:58 1535为了方便学习,原文出自http://sarin.iteye.c ... -
Spring Security Acegi 学习之路四 (转)
2010-09-16 12:34 1653安全对象访问控制 Aceg ... -
Spring Security Acegi 学习之路三 (转)
2010-09-16 12:34 2324身份认证管理 使用 Acegi ... -
Spring Security Acegi 学习之路二(转)
2010-09-16 12:33 1428将 Acegi 集成到 ... -
Spring Security Acegi 学习之路一 (转)
2010-09-16 12:32 1370概述 Acegi Sec ... -
spring security详解教程 (转)
2010-09-16 12:29 2152先来谈一谈 Acegi 的基础知识, Acegi 的架 ... -
Spring的监听器 ContextLoaderListener的作用(转)
2010-07-07 11:18 1802在SSH项目中我们自动加载spring配置文件需要在web.x ...
相关推荐
Spring与Hibernate两种组合方式
Spring提供了DAO支持,可以简化DAO组件的开发,特别是IoC容器的使用,提供了DAO组件与业务逻辑组件之间的松耦合组合方式。 所有的DAO组件,都由容器负责注入到业务逻辑组件中,使用业务逻辑组件无需关心DAO组件的...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 3、存储过程与触发器必须讲,经常被面试到? 4、数据库三范式...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 99 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 100 3、存储过程与触发器必须讲,经常被面试到? 101 4、...
1、用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。 91 2、列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序 91 3、存储过程与触发器必须讲,经常被面试到? 92 4、数据库...
在web开发中,经常遇到...而使用hibernate,它的修改是基于对象的,如果用户修改的字段非常多,但是我们并不知道用户到底修改了那个字段,这时候就需要一个一个的去判断,因此非常耗时,所以我写了个工具类来帮助大家!
下面就以两种不同的用户来分析博客网站的需求。 4.2.1注册博友 首先必须在博客首页中登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发表博文。可以在管理页面上添加...
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
后台功能涵盖了试题模块管理、试题管理、考试管理、成绩管理、班级管理、考场管理、用户管理、信息发布与讨论区管理等绝大多数在线考试管理功能,考试分为模拟考试与正式考试两种;前台用户可以直接参加考试,根据...
5)支持Java语言的两种技术组合:Simplejee和s2sh 6)生成相应对象的CRUDFLS等常用功能 7)生成完整的Eclipse JEE版兼容的zip格式的压缩文件 8)内置SGS脚本(标准生成器脚本)编译器 9)部署请使用Java7和Tomcat7环境 10)...
System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][.precision]conversion 以“%”开头,[第几个...
1 目前国内比较流行的技术组合:spring(www.springframework.com) + hibernate技术,还有webservice +XML技术; 2 J2EE的相关技术:EJB,SEVILET,JSP等; 3 源文件(*.java) --------->类文件(*.class) ---------...