Hibernate 配置2024 年 8 月 29 日 | 阅读 3 分钟 由于Hibernate可以在不同的环境中运行,因此它需要广泛的配置参数。 这些配置包含为Java类提供不同功能的映射信息。 通常,我们在配置文件中提供与数据库相关的映射。 Hibernate允许在XML文件(例如hibernate.cfg.xml)或属性文件(例如hibernate.properties)中提供配置。 Configuration类的一个实例允许为应用程序指定属性和映射。 该类还构建一个不可变的SessionFactory。 我们可以通过直接实例化它并在配置文件中指定映射来获取Configuration类实例。 如果映射文件存在于类路径中,请使用addResource()方法。 让我们看一个示例,在XML文件和属性文件中提供配置。 基于XML的配置 属性文件配置 Hibernate配置的属性Hibernate JDBC属性属性 | 描述 |
---|
hibernate.connection.driver_class | 它表示JDBC驱动程序类。 | hibernate.connection.url | 它表示JDBC URL。 | hibernate.connection.username | 它表示数据库用户名。 | hibernate.connection.password | 它表示数据库密码。 | Hibernate.connection.pool_size | 它表示连接池中可用的最大连接数。 |
Hibernate数据源属性属性 | 描述 |
---|
hibernate.connection.datasource | 它表示数据源JNDI名称,Hibernate使用它来进行数据库属性设置。 | hibernate.jndi.url | 这是可选的。 它表示JNDI提供者的URL。 | hibernate.jndi.class | 这是可选的。 它表示JNDI InitialContextFactory的类。 |
Hibernate配置属性属性 | 描述 |
---|
hibernate.dialect | 它表示Hibernate中用于为特定关系数据库生成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缓存属性属性 | 描述 |
---|
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事务属性属性 | 描述 |
---|
hibernate.transaction.factory_class | 它表示与Hibernate事务API一起使用的TransactionFactory的类名。 | hibernate.transaction.manager_lookup_class | 它表示TransactionManagerLookup的类名。 启用JVM级缓存时需要它。 | hibernate.transaction.flush_before_completion | 如果启用,在事务完成前阶段,会话将被自动刷新。 | hibernate.transaction.auto_close_session | 如果启用,在事务完成后阶段,会话将被自动关闭。 |
其他Hibernate属性属性 | 描述 |
---|
hibernate.connection.provider_class | 它表示自定义ConnectionProvider的类名,该类为Hibernate提供JDBC连接。 | hibernate.connection.isolation | 它用于设置JDBC事务隔离级别。 | hibernate.connection.autocommit | 它为JDBC连接池启用自动提交。 但是,不建议这样做。 | hibernate.connection.release_mode | 它指定Hibernate应该何时释放JDBC连接。 | hibernate.current_session_context_class | 它为“当前”会话的作用域提供自定义策略。 | hibernate.hbm2ddl.auto | 它在创建SessionFactory时自动在数据库中生成模式。 |
|