由于Hibernate可以在不同的环境中运行, 因此需要广泛的配置参数。这些配置包含为Java类提供不同功能的映射信息。通常, 我们在配置文件中提供与数据库相关的映射。 Hibernate有助于以XML文件(例如hibernate.cfg.xml)或属性文件(例如hibernate.properties)提供配置。
Configuration类的实例允许指定属性和到应用程序的映射。此类还构建了一个不变的SessionFactory。
我们可以通过直接实例化Configuration类实例并在配置文件中指定映射来获取它。如果映射文件存在于类路径中, 请使用addResource()方法。
Configuration cfg = new Configuration().addResource("employee.hbm.xml")
让我们看一个以XML文件和属性文件提供配置的示例。
基于XML的配置
<
?xml version="1.0" encoding="UTF-8"?>
<
!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 5.3//EN""http://www.hibernate.org/dtd/hibernate-configuration-5.3.dtd">
<
hibernate-configuration>
<
session-factory>
<
property name="hbm2ddl.auto">
update<
/property>
<
property name="dialect">
org.hibernate.dialect.Oracle9Dialect<
/property>
<
property name="connection.url">
jdbc:oracle:thin:@localhost:1521:xe<
/property>
<
property name="connection.username">
system<
/property>
<
property name="connection.password">
jtp<
/property>
<
property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver<
/property>
<
/session-factory>
<
/hibernate-configuration>
【Hibernate配置】属性文件配置
hibernate.dialect= org.hibernate.dialect.Oracle9Dialecthibernate.connection.driver_class= oracle.jdbc.driver.OracleDriverhibernate.connection.url= jdbc:oracle:thin:@localhost:1521:xehibernate.connection.username= systemhibernate.connection.password=jtphibernate.show_sql=truehibernate.hbm2ddl=update
休眠配置的属性Hibernate JDBC属性
属性 |
描述 |
hibernate.connection.driver_class |
它代表JDBC驱动程序类。 |
hibernate.connection.url |
它代表JDBC URL。 |
hibernate.connection.username |
它代表数据库用户名。 |
休眠连接密码 |
它代表数据库密码。 |
Hibernate.connection.pool_size |
它表示连接池中可用的最大连接数。 |
休眠数据源属性
属性 |
描述 |
hibernate.connection.datasource |
它代表Hibernate用于数据库属性的数据源JNDI名称。 |
hibernate.jndi.url |
它是可选的。它表示JNDI提供程序的URL。 |
hibernate.jndi.class |
它是可选的。它表示JNDI InitialContextFactory的类。 |
休眠配置属性
属性 |
描述 |
hibernate.dialect |
它表示休眠中用于为特定关系数据库生成SQL语句的数据库类型。 |
hibernate.show_sql |
它用于显示已执行的SQL语句以进行控制台。 |
hibernate.format_sql |
它用于在日志和控制台中打印SQL。 |
hibernate.default_catalog |
它使用生成的SQL中的给定目录来限定不合格的表名。 |
hibernate.default_schema |
它使用生成的SQL中的给定架构来限定不合格的表名。 |
hibernate.session_factory_name |
创建后, SessionFactory接口会自动绑定到JNDI中的该名称。 |
hibernate.default_entity_mode |
它为从此SessionFactory打开的所有会话设置实体表示的默认模式 |
hibernate.order_updates |
它根据更新的主键对SQL更新进行排序。 |
hibernate.use_identifier_rollback |
如果启用, 则删除对象时, 生成的标识符属性将重置为默认值。 |
hibernate.generate_statistics |
如果启用, 则Hibernate将收集对性能调整有用的统计信息。 |
hibernate.use_sql_comments |
如果启用, 则Hibernate会在SQL内生成注释。它用于简化调试。 |
休眠缓存属性
属性 |
描述 |
hibernate.cache.provider_class |
它代表自定义CacheProvider的类名。 |
hibernate.cache.use_minimal_puts |
它用于优化二级缓存。它以更频繁的读取为代价, 最大程度地减少了写入。 |
hibernate.cache.use_query_cache |
它用于启用查询缓存。 |
hibernate.cache.use_second_level_cache |
它用于禁用二级缓存, 默认情况下, 该二级缓存对指定映射的类启用。 |
hibernate.cache.query_cache_factory |
它代表自定义QueryCache接口的类名。 |
hibernate.cache.region_prefix |
它指定用于二级缓存区域名称的前缀。 |
hibernate.cache.use_structured_entries |
它有助于Hibernate以更人性化的格式将数据存储在二级缓存中。 |
休眠事务属性
属性 |
描述 |
hibernate.transaction.factory_class |
它代表与Hibernate Transaction API一起使用的TransactionFactory的类名。 |
hibernate.transaction.manager_lookup_class |
它代表TransactionManagerLookup的类名。启用JVM级别的缓存时, 它是必需的。 |
hibernate.transaction.flush_before_completion |
如果启用, 则会话将在事务完成之前自动刷新。 |
hibernate.transaction.auto_close_session |
如果启用, 则在事务的完成阶段之后, 会话将自动关闭。 |
其他休眠属性
属性 |
描述 |
hibernate.connection.provider_class |
它代表了一个自定义ConnectionProvider的类名, 该提供程序提供了到Hibernate的JDBC连接。 |
休眠连接隔离 |
它用于设置JDBC事务隔离级别。 |
休眠连接自动提交 |
它启用JDBC池连接的自动提交。但是, 不建议这样做。 |
hibernate.connection.release_mode |
它指定Hibernate何时释放JDBC连接。 |
hibernate.current_session_context_class |
它为“当前”会话的范围提供了自定义策略。 |
hibernate.hbm2ddl.auto |
它通过创建SessionFactory在数据库中自动生成模式。 |
推荐阅读