`
anson_xu
  • 浏览: 513426 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

s2sh 配置文件说明 application.xml文件配置说明

    博客分类:
  • SSH
阅读更多

Hibernate配置项

Xml代码 复制代码
  1. <!--Hibernate Session工厂-->  
  2. <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
  3.     <property name="dataSource" ref="dataSource" />  
  4.     <property name="packagesToScan">  
  5.         <list>  
  6.             <value></value>  
  7.         </list>  
  8.     </property>  
  9.     <property name="hibernateProperties">  
  10.         <props>  
  11.             <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>  
  12.             <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>  
  13.             <prop key="hibernate.dialect">${hibernate.dialect}</prop>  
  14.             <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>  
  15.             <prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>  
  16.             <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>  
  17.             <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>  
  18.             <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>  
  19.             <prop key="hibernate.show_sql">${hibernate.use_sql_comments}</prop>  
  20.             <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.cache.provider_configuration_file_resource_path}</prop>  
  21.         </props>  
  22.     </property>  
  23. </bean>  
	<!--Hibernate Session工厂-->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="packagesToScan">
			<list>
				<value></value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
				<prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>
				<prop key="hibernate.dialect">${hibernate.dialect}</prop>
				<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
				<prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop>
				<prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>
				<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
				<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
				<prop key="hibernate.show_sql">${hibernate.use_sql_comments}</prop>
				<prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.cache.provider_configuration_file_resource_path}</prop>
			</props>
		</property>
	</bean>

 

hibernate.properties

#Oracle方言
# hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
# hibernate.dialect=org.hibernate.dialect.SQLServerDialect
#hibernate方言
hibernate.dialect=org.hibernate.dialect.SQLServerDialect


#是否启用二级缓存,
hibernate.cache.use_query_cache=true
#二级缓存class
# hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider
# hibernate.cache.provider_class=org.hibernate.cache.SingletonEhCacheProvider
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
#二级缓存配置文件
hibernate.cache.provider_configuration_file_resource_path=/cache/ehcache.xml

#是否同步数据库结构(自动创建|更新|验证数据库表结构)
#none: 不做任何操作
#create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行。会导致数据库表数据丢失。
#create-drop: 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
#update:第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
#validate:验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
hibernate.hbm2ddl.auto=none


#关于hibernate.jdbc.fetch_size与hibernate.jdbc.batch_size的设置,可能会将严重影响Hibernate的CRUD性能。
#设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数。
#Fetch Size设的越大,读数据库的次数越少,速度越快;Fetch Size越小,读数据库的次数越多,速度越慢。
#MySQL就支持Fetch Size特性
hibernate.jdbc.fetch_size=20
#设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小。
#Batch Size越大,批量操作的向数据库发送sql的次数越少,速度就越快。
hibernate.jdbc.batch_size=50

#设置外连接抓取树的最大深度取值. 建议设置为0到3之间
#hibernate.max_fetch_depth

#是否显示最终执行的SQL(开发环境)
hibernate.show_sql=false
#格式化显示的SQL
hibernate.format_sql=false
#如果设置为true,Hiberante将为SQL产生注释,这样更利于调试。默认值为false。取值为true|false。
hibernate.use_sql_comments=false

 

 

 

 

 

(附录) Hibernate配置项:

 

1.Hibernate配置项

(1)hibernate.dialect指定方言后,Hibernate可以根据低层数据库自动产生优化过的SQL。取值为org.hibenate.dialect.Dialect的继承类。多数情况下,Hibernate可以根据低层JDBC返回的metadata来判断。

(2)hibernate.show_sql打印所有的SQL语句到控制台,可以通过设置org.hibernate.SQL类的日志策略到DEBUG级,实现同样的效果。取值true|false。

(3)hibernate.format_sql 格式化SQL语句在打印到控制台或写入日志文件时。取值true|false。

(4)hibernate.default_schema 在产生SQL语句时,在表名前加上映射文件给出的表空间(tablespace)或数据库模式(schema)。取值SCHEMA_NAME。

(5)hibernate.default_catalog 在产生SQL语句时,在表名前加上映射文件给出的catalog。取值CATALOG_NAME。

(6)hibernate.session_factory_name  Hibernate创建org.hibernate.SessionFactory实例后后会自动的将这个绑定到JNDI中的名字上。取值jndi/sf。

(7)hibernate.max_fetch_depth 设置对单个表的外连接数最大深度。0是屏蔽默认的外连接设置。推荐设置为0到3之间。

(8)hibernate.default_batch_fetch_size 设置Hibernate批量联合查询的尺度。强烈建议。推荐设置为4、8、16。

(9)hibernate.default_entity_mode 默认的实体表现模式,通过SessionFactory打开的所有的Session。取值,dynamic-map、dom4j、pojo。

(10)hibernate.order_updates 强迫Hibernate通过被更新项的主键值排序SQL更新。这样可以在高并发时,减少事务死锁。取值true|false。

(11)hibernate.generate_statistics 如果设置为true,Hibernate将为性能调整,收集统计信息。取值true|false。

(12)hibernate.use_identifier_rollback 如果设置为true,产生的标识属性将被重置成默认值,当对象被删除后。取值为true|false。

(13)hibernate.use_sql_comments 如果设置为true,Hiberante将为SQL产生注释,这样更利于调试。默认值为false。取值为true|false。

2.Hibernate JDBC和连接的属性

(1)hibernate.jdbc.fetch_size 指定JDBC的查询尺度。通过调用(Statement.setFetchSize())。

(2)hibernate.jdbc.batch_size 指定Hibernate如何使用JDBC2批量更新。取值,推荐5到30。

(3)hibernate.jdbc.batch_versioned_data 设置这个属性为true,JDBC将返回executeBatch执行后正确的行数。打开这个参数,通常是安全的。Hibernate将自动的译码这些数据使用批量DML。默认为false。取值true|false。

(4)hibernate.jdbc.factory_class 选择一个定制的org.hibernate.jdbc.Batcher。所有的应用程序不需要配置这个属性。取值,定义工厂的类名。

(5)hibernate.jdbc.use_scrollable_resultset  Hibernate使用JDBC2的可滚动记录集。当使用用户提供的JDBC连接时,需要设置这个参数。否则,Hibernate使用连接MetaData。取值true|false。

(6)hibernate.jdbc.use_streams_for_binary 当读或写二进制数据或序列化数据从JDBC或到JDBC,使用流。系统级的数据。设置true|false。

(7)hibernate.jdbc.use_get_generated_keys 在插入后,可以使用JDBC3的PreparedStatement.getGeneratedKeys()中的值找回本地产生的键值。要求JDBC3+和JRE1.4+,如果使用Hibernate identifier generator后你的驱动程序有问题,请设置为false。默认情况下,设法连接MetaData来决定。取值,true|false。

(8)hibernate.connection.provider_class 实现了org.hibernate.connection.ConnectionProvider 接口的类的名称,为Hibernate提供连接。

(9)hibernate.connection.isolation 设置JDBC事务隔离的级别。检查java.sql.Connection的定义的常量值,但要注意大多数数据库不支持所有的隔离级别、一些附加的和非标准的隔离级别。取值,1、2、4、8。

(10)hibernate.connection.autocommit  JDBC共享连接的自动提交。(不推荐)取值,true|false。

(11)hibernate.connection.release_mode 指定什么时候,Hibernate应该释放JDBC连接。默认情况下,JDBC是一直存在,只到Session是被明确关闭或断开连接时。对于应用的服务器JTA数据源,你应该使用after_statement强制释放JDBC连接在每个JDBC请求结束后。对于非JTA数据源,通常是在每个事务结束后释放JDBC连接是有意义的。将该值设为auto时,JTA和CMT事务策略时,是选择after_statement方式。JDBC事务策略时,是选择after_transaction。取值,auto(default),on_close,after_statment,after_transaction。

注意:这个设置只影响通过SessionFactory.openSession打开的session。对于通过SessionFactory.getCurrentSession获取的session,CurrentSessionContext实现类的配置是用来控制这些session的连接释放模式。

(12)hibernate.connection. 传递这些属性到DriverManager.getConnection中。

(13)hibernate.jndi. 传递这些属性到JNDI InitialContextFactory。

3.Hibernate Cache 属性

(1)hibernate.cache.provider_class 定制的CacheProvider的类名。

(2)hibernate.cache.use_minimal_puts 花费更多的读操作,来优化二级缓存的最少写操作。这个操作对于集群缓存是非常有用的。在Hibernate3中,对于集群缓存是默认开启该功能的。取值,true|false。

(3)hibernate.cache.use_query_cache 开启查询缓存,个别查询肯定应该开启查询缓存。取值,true|false。

(4)hibernate.cache.use_second_level_cache 也许过去习惯于完全屏蔽掉二级缓存,默认是开启,对于指定CacheProvider实现类的情况。取值,true|false。

(5)hibernate.cache.query_cache_factory  实现QueryCache接口的类名,默认是内置的StandardQueryCache。

(6)hibernate.cache.region_prefix 对于使用二级缓存区域名的前缀。

(7)hibernate.cache.use_structured_entries 强迫Hibernate在存储数据到二级缓存时,使用更人性化的格式。取值,true|false。

4.Hibernate事务属性

(1)hibernate.transaction.transaction_class  使用Hibernate事务APIs的TransactionFactory的类名。默认是JDBCTransactionFactory。

(2)jta.UserTransaction  JTATransactionFactory使用JNDI名字从应用服务器中获取JTA UserTransaction。取值,jndi/ut。

(3)hibernate.transaction.manager_lookup_class 是一个TransactionManagerLookup实现类的类名。当JVM级别的缓存开启时或在JTA环境中使用hilo generator时,要求指定该值。

(4)hibernate.transaction.flush_before_completion 如果设为true,session将在事务完成阶段之前,自动将缓存区的值推入到数据库中。内置和自动session上下文管理是被优先选用的。取值,true|false。

(5)hibernate.transaction.auto_close_session 如果设为true,session将在事务完成之后,自动的关闭session。内置和自动session上下文管理是被优先选用的。取值,true|false。

5.Miscellaneous properties 各种混合的属性

(1)hibernate.current_session_context_class 提供一个对于当前session生命周期的策略。取值,jta、thread、managed、定制类名。

(2)hibernate.query.factory_class 选择HSQL的解析实现类。取值,org.hibernate.hsql.ast.ASTQueryTranslatorFactory和org.hibernate.hsql.classic.ClassicQueryTranslatorFactory。

(3)hibernate.query.subsitutions Hibernate中标记符到SQL中标记符的映射。举例说,可以是函数名或普通字符串名。取值,如hsqLiteral=SQL_LITERAL,hqlFunction=SQLFUN。

(4)hibernate.hbm2ddl.auto 当SessionFactory被创建时,自动的验证或输出模式DDL(也就建表语句)到数据库中。也就是说,自动的验证数据库表结构或先删除再重新建立,或在原表结构上更新数据表结构。当将值置为create-drop时,在SessionFactory被清除时,将删除数据库中表结构。取值,validate、create、update、create-drop。

(5)hibernate.cglib.use_reflection_optimizer 用CGLIB代替运行期的reflection(系统级属性)。在有故障时,反射是非常有用的,注意Hibernate总是需要CGLIB,甚至在你关闭优化后。你不可以设置这个属性在hibernate.cfg.xml文件中。

分享到:
评论

相关推荐

    strruts2.1、Spring3.0、Hibernate3.3整合与S2SH的XML文件拆分.docx

    Spring的配置也可以类似拆分,比如将数据源、事务管理、DAO和Service等配置分别放在不同的XML文件中。 **数据库连接配置:** 在MyEclipse中,可以使用Database Explorer创建数据库连接。通过指定Driver template...

    Struts2.1、Spring3.0、Hibernate3.3整合与S2SH的XML文件拆分

    Struts2.1、Spring3.0 和 Hibernate3.3 的整合是企业级Java应用开发中常见的技术组合,常被称为S2SH框架。这个整合旨在实现MVC(Model-View-Controller)架构,以提高应用的可维护性和可扩展性。下面我们将详细探讨...

    s2sh配置文件包

    这个"**s2sh配置文件包**"很显然包含了与使用这三个框架集成相关的配置文件和库。接下来,我们将深入探讨Struts 2、Spring 3以及它们在SSH框架中的作用,以及配置文件的相关知识。 首先,Struts 2是一个基于MVC...

    s2sh-lib-01.zip

    Struts2.2+Spring3.1+Hibernate3.6是一个经典的Java Web开发...总结来说,"s2sh-lib-01.zip"提供的库文件是搭建S2SH框架整合的基础,通过这些库,开发者可以轻松地构建具备登录功能和完整CRUD操作的Java Web应用程序。

    S2SH xml配置文件

    - `/WEB-INF/applicationContext*.xml`表示在`WEB-INF`目录下所有以`applicationContext`开头的XML文件,这些文件将被Spring容器读取。 ```xml &lt;listener-class&gt;org.springframework.web.context....

    S2SH配置文件

    这些配置文件在S2SH框架中扮演着至关重要的角色,它们是系统运行的基础。 1. **struts.properties**:这是Struts2框架的核心配置文件,它定义了Struts2的基本属性,如全局的默认主题、拦截器栈等。例如,你可以在...

    OA.rar_ java oa s2sh_site:www.pudn.com

    【压缩包子文件的文件名称列表】只列出了"OA",这可能是项目的主要目录或者包含其他子目录和文件的地方,如源代码文件(.java)、配置文件(如struts.xml、spring.xml、hibernate.cfg.xml)、数据库脚本、Web应用...

    S2SH 配置文件和配置

    S2SH 配置 配置文件 S2SH 配置 配置文件 S2SH 配置 配置文件 S2SH 配置 配置文件 直接拷贝进入工程 就可以用。 你要加一些dao action 等 就可以跟你的项目结合在一起

    S2SH整合包导入myeclipse.docx

    这会自动生成一个`struts-config.xml`文件,它是Struts的核心配置文件,用于定义Action、Form Bean、Forward等元素。 接着,我们需要导入Spring框架。同样地,右键项目,选择"MyEclipse" -&gt; "Add Spring ...

    S2SH的框架配置详解

    **S2SH框架配置详解** S2SH框架是基于Java的Web开发框架,由Struts、Spring和Hibernate三个开源框架组合而成。这个框架为开发者提供了一种高效且灵活的开发方式,尤其对于初学者,理解并掌握S2SH的配置至关重要。...

    s2sh整合步骤及配置文件配置

    在MyEclipse中选择项目,然后通过“add Hibernate capabilities”创建`hibernate.cfg.xml`配置文件,并自动生成`SessionFactory`类,如`com.softeem.s2sh.utils.HibernateSessionFactory`。 - 在`hibernate.cfg.xml...

    ROOT.rar_ROOT_S2SH论坛_s2sh开发BBS_www.933s2

    《S2SH框架开发的BBS论坛系统详解》 在信息技术领域,开发高效且功能丰富的Web应用程序是一项重要的任务。本文将深入探讨一个基于S2SH(Struts2、Spring、Hibernate)三大开源框架构建的BBS论坛系统。该系统名为...

    ECTable+Struts2+Hibernate+Spring S2SHTest.part2.rar

    ECTable+Struts2+Hibernate+Spring S2SHTest.part2.rar ECTable+Struts2+Hibernate+Spring S2SHTest.part2.rar

    s2sh整合的jar包.rar

    在整合S2SH时,开发者需要配置相应的XML配置文件,比如Struts的struts.xml、Spring的applicationContext.xml以及Hibernate的hibernate.cfg.xml。这些配置文件定义了组件间的关系、动作映射、数据源和实体类映射等。 ...

    S2SH的配置文件

    ### S2SH的配置文件详解 #### 一、概述 S2SH(Spring+Struts+Hibernate)是一种常用的Java Web开发框架组合,它通过将Spring作为业务逻辑层管理器、Struts作为MVC控制器以及Hibernate作为持久化层来实现整个应用...

    s2sh整合配置步骤及其xml文件配置(图示)

    Struts2.0.14+Spring2.5+Hibernate3.2+Oracle10g+Tomcat6.0开发环境配置,有步骤图示 +web.xml+applicationContext.xml文件配置 还算齐全。。。

    S2SH框架配置文件

    下面将分别解析标题、描述以及压缩包中的四个配置文件,并详细阐述其在S2SH框架中的作用。 标题“S2SH框架配置文件”指出了我们关注的重点是框架的配置部分。配置文件在S2SH框架中扮演着关键角色,它们定义了各个...

    ECTable+Struts2+Hibernate+Spring S2SHTest.part1.rar

    ECTable+Struts2+Hibernate+Spring S2SHTest.part1.rar ECTable+Struts2+Hibernate+Spring S2SHTest.part1.rar

    s2sh配置步骤java

    - 可以使用`s2sh配置步骤.xls`文件提供的步骤进行对照,确保每个环节都正确无误。 在实际开发中,S2SH框架能帮助我们快速构建功能完善的Java Web应用。但随着技术的发展,现在更多地推荐使用Spring Boot,它简化了...

    S2SH投票管理系统源码.zip

    S2SH投票管理系统源码通过Struts2+Hibernate3+Spring+mysql实现,mysql导入sql文件,修改applicationContext.xml文件配置数据源。 部署后访问http://localhost:8080/Votesystem/,投票地址...

Global site tag (gtag.js) - Google Analytics