Hibernate配置

由于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在数据库中自动生成模式。

    推荐阅读