- 浏览: 513165 次
- 性别:
- 来自: 惠州
文章分类
- 全部博客 (255)
- ant (1)
- springMVC (2)
- ajax (4)
- oracle (12)
- SSH (13)
- struts1 (2)
- Hibernate (14)
- spring (5)
- jstl (1)
- 连接池 (1)
- acegi (4)
- java (17)
- jquery (11)
- div+css (4)
- drupal (1)
- php (8)
- freemaker调模板生成静态页面 (1)
- xml (1)
- json (2)
- javascript (9)
- 正则表达式 (4)
- Ext (8)
- jdbc (1)
- sql server (2)
- perl (5)
- db4o (1)
- webservice (4)
- flex (13)
- it资讯 (1)
- joomla (0)
- 设计模式 (1)
- struts2 (4)
- s2sh (8)
- linux (3)
- ejb (2)
- android旅途 (24)
- android (36)
- C/C++ (16)
- mysql (1)
最新评论
-
fengyuxing168:
IBelyService bs = IBelyService. ...
为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取 -
dengzhangtao:
"由于ActivityManagerService是 ...
binder理解 -
yzyspy:
ActivityManagerService:startHom ...
Android的Launcher成为系统中第一个启动的,也是唯一的 -
Matchstick:
使用SELECT DISTINCT alias FROM Po ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题 -
dlheart:
没看懂你什么意思啊,我遇到的问题是一对多,设了fetch = ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题
Hibernate配置项
- <!--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 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文件中。
发表评论
-
关于openSession()与getCurrentSession()
2010-05-13 14:25 2208关于openSession()与getCurrentSessi ... -
二级缓存的配置 配置ehcache.xml文件
2010-05-13 10:12 1377原文出处:http://i.cn.yahoo.com/en.w ... -
配置一个数据源 spring
2010-03-26 09:01 974配置一个数据源 Spring在第三方依赖包中包含了两个 ... -
Struts Spring Hibernate 事务管理的例子
2009-04-03 13:50 2972Struts Spring Hibernate 事务管理的例子 ... -
Spring的四种声明式事务的配置-Hibernate事务
2009-04-03 13:41 1969Spring的四种声明式事务的配置-Hibernate事务20 ... -
我的通用DAO理解,请大家指正
2008-11-20 12:28 4267首先声明我的资料大我来自javaeye,先谢谢各位. 但因本人 ... -
J2EE学习笔记——初试SSH之泛型通用DAO
2008-11-19 16:12 1683J2EE学习笔记——初试SSH之泛型通用DAO 在做项目的时候 ... -
一个acegi配置文件applicationContext-security-acegi.xm
2008-10-08 20:29 1735<?xml version="1.0" ... -
一个proxool连接池的applicationContext.xml配置文件
2008-10-08 20:23 1808applicationContext.xml <?xml ... -
一个web.xml配置文件
2008-10-08 20:20 2305web.xml <?xml version=" ... -
ssh 整合测试
2008-08-18 18:27 1831ssh 整合测试 关键字: ssh整合 搞了很久的ssh整合 ... -
我的智囊团构建全过程
2008-05-15 14:26 1693ssh综合实战 (Struts+sprin ...
相关推荐
Spring的配置也可以类似拆分,比如将数据源、事务管理、DAO和Service等配置分别放在不同的XML文件中。 **数据库连接配置:** 在MyEclipse中,可以使用Database Explorer创建数据库连接。通过指定Driver template...
Struts2.1、Spring3.0 和 Hibernate3.3 的整合是企业级Java应用开发中常见的技术组合,常被称为S2SH框架。这个整合旨在实现MVC(Model-View-Controller)架构,以提高应用的可维护性和可扩展性。下面我们将详细探讨...
这个"**s2sh配置文件包**"很显然包含了与使用这三个框架集成相关的配置文件和库。接下来,我们将深入探讨Struts 2、Spring 3以及它们在SSH框架中的作用,以及配置文件的相关知识。 首先,Struts 2是一个基于MVC...
Struts2.2+Spring3.1+Hibernate3.6是一个经典的Java Web开发...总结来说,"s2sh-lib-01.zip"提供的库文件是搭建S2SH框架整合的基础,通过这些库,开发者可以轻松地构建具备登录功能和完整CRUD操作的Java Web应用程序。
- `/WEB-INF/applicationContext*.xml`表示在`WEB-INF`目录下所有以`applicationContext`开头的XML文件,这些文件将被Spring容器读取。 ```xml <listener-class>org.springframework.web.context....
这些配置文件在S2SH框架中扮演着至关重要的角色,它们是系统运行的基础。 1. **struts.properties**:这是Struts2框架的核心配置文件,它定义了Struts2的基本属性,如全局的默认主题、拦截器栈等。例如,你可以在...
【压缩包子文件的文件名称列表】只列出了"OA",这可能是项目的主要目录或者包含其他子目录和文件的地方,如源代码文件(.java)、配置文件(如struts.xml、spring.xml、hibernate.cfg.xml)、数据库脚本、Web应用...
S2SH 配置 配置文件 S2SH 配置 配置文件 S2SH 配置 配置文件 S2SH 配置 配置文件 直接拷贝进入工程 就可以用。 你要加一些dao action 等 就可以跟你的项目结合在一起
这会自动生成一个`struts-config.xml`文件,它是Struts的核心配置文件,用于定义Action、Form Bean、Forward等元素。 接着,我们需要导入Spring框架。同样地,右键项目,选择"MyEclipse" -> "Add Spring ...
**S2SH框架配置详解** S2SH框架是基于Java的Web开发框架,由Struts、Spring和Hibernate三个开源框架组合而成。这个框架为开发者提供了一种高效且灵活的开发方式,尤其对于初学者,理解并掌握S2SH的配置至关重要。...
在MyEclipse中选择项目,然后通过“add Hibernate capabilities”创建`hibernate.cfg.xml`配置文件,并自动生成`SessionFactory`类,如`com.softeem.s2sh.utils.HibernateSessionFactory`。 - 在`hibernate.cfg.xml...
《S2SH框架开发的BBS论坛系统详解》 在信息技术领域,开发高效且功能丰富的Web应用程序是一项重要的任务。本文将深入探讨一个基于S2SH(Struts2、Spring、Hibernate)三大开源框架构建的BBS论坛系统。该系统名为...
ECTable+Struts2+Hibernate+Spring S2SHTest.part2.rar ECTable+Struts2+Hibernate+Spring S2SHTest.part2.rar
在整合S2SH时,开发者需要配置相应的XML配置文件,比如Struts的struts.xml、Spring的applicationContext.xml以及Hibernate的hibernate.cfg.xml。这些配置文件定义了组件间的关系、动作映射、数据源和实体类映射等。 ...
### S2SH的配置文件详解 #### 一、概述 S2SH(Spring+Struts+Hibernate)是一种常用的Java Web开发框架组合,它通过将Spring作为业务逻辑层管理器、Struts作为MVC控制器以及Hibernate作为持久化层来实现整个应用...
Struts2.0.14+Spring2.5+Hibernate3.2+Oracle10g+Tomcat6.0开发环境配置,有步骤图示 +web.xml+applicationContext.xml文件配置 还算齐全。。。
下面将分别解析标题、描述以及压缩包中的四个配置文件,并详细阐述其在S2SH框架中的作用。 标题“S2SH框架配置文件”指出了我们关注的重点是框架的配置部分。配置文件在S2SH框架中扮演着关键角色,它们定义了各个...
ECTable+Struts2+Hibernate+Spring S2SHTest.part1.rar ECTable+Struts2+Hibernate+Spring S2SHTest.part1.rar
- 可以使用`s2sh配置步骤.xls`文件提供的步骤进行对照,确保每个环节都正确无误。 在实际开发中,S2SH框架能帮助我们快速构建功能完善的Java Web应用。但随着技术的发展,现在更多地推荐使用Spring Boot,它简化了...
S2SH投票管理系统源码通过Struts2+Hibernate3+Spring+mysql实现,mysql导入sql文件,修改applicationContext.xml文件配置数据源。 部署后访问http://localhost:8080/Votesystem/,投票地址...