由于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.dialect= org.hibernate.dialect.Oracle9Dialect
hibernate.connection.driver_class= oracle.jdbc.driver.OracleDriver
hibernate.connection.url= jdbc:oracle:thin:@localhost:1521:xe
hibernate.connection.username= system
hibernate.connection.password=jtp
hibernate.show_sql=true
hibernate.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在数据库中自动生成模式。 |
评论前必须登录!
注册