14.1.7 配置JDBC和数据库
Hibernate自定义JDBC和数据库配置属性如下所示。
·属性名:hibernate.jdbc.fetch_size
描述:JDBC抓取记录的大小,相当于设置Statement.setFetchSize(),默认值为25。
示例如下:
<property name="hibernate.jdbc.fetch_size" value="50”/> |
·属性名:hibernate.jdbc.batch_size
描述:JDBC2批量更新的大小,建议设置为5~30之间的值,默认为5。
示例如下:
|
·属性名:hibernate.jdbc.batch_versioned_data
描述:JDBC执行批量操作时,是否同时更新版本数据。
可选值:
·true(默认):执行批量操作executeBatch()返回成功的记录数,并且更新版本数据。
·false:批量操作后不更新版本数据。
示例如下:
<property name="hibernate.jdbc.batch_versioned_data" value="false”/> |
·属性名:hibernate.jdbc.batch_versioned_data
描述:JDBC执行批量操作时,是否同时更新版本数据。
可选值:
·true(默认):执行批量操作executeBatch()返回成功的记录数,并且更新版本数据。
·false:批量操作后不更新版本数据。
示例如下:
<property name="hibernate.jdbc.batch_versioned_data" value="false”/> |
·属性名:hibernate.jdbc.use_scrollable_resultset
描述:是否允许Hibernate使用JDBC2的可滚动结果集。
可选值:
·true(默认):可使用可滚动结果集,只有在使用用户提供的JDBC连接时,才需要设置为启用。
·false:不可使用滚动结果集。
示例如下:
<property name="hibernate.jdbc.use_scrollable_resultset" value="false”/> |
·属性名:hibernate.jdbc.use_streams_for_binary
描述:是否JDBC以二进制方式读取。
可选值:
·true(默认):以二进制方式读取。
·false:以二进制方式读取,而以序列化方式读取。
示例如下:
<property name="hibernate.jdbc.use_streams_for_binary" value="false”/> |
·属性名:hibernate.jdbc.use_get_generated_keys
描述:是否使用JDBC3插入记录时使用PreparedStatement.getGeneratedKeys()生成主键。
可选值:
·true:使用PreparedStatement.getGeneratedKeys()生成主键。
·false(默认):使用Hibernate自定义的生成策略。
示例如下:
<property name="hibernate.jdbc.use_get_generated_keys" value="true”/> |
·属性名:hibernate.connection.isolation
描述:JDBC事务隔离级别,请读者查阅java.sql.Connection文档了解各个级别的类型,例如1、2、4(默认)、8。
示例如下:
<property name="hibernate.connection.isolation" value="8”/> |
·属性名:hibernate.connection.autocommit
描述:是否使用JDBC自动提交。
可选值:
·true(默认):自动提交。
·false:不自动提交。
示例如下:
<property name="hibernate.connection.autocommit" value="false”/> |
·属性名:hibernate.connection.driver_class
描述:数据连接的驱动类的全称,不同的数据库实现类不同。
示例如下:
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver”/> |
·属性名:hibernate.connection.url
描述:数据连接的URL。
示例如下:
<property name="hibernate.connection.url" value=" jdbc:mysql://localhost:3306/ jpademo”/> |
·属性名:hibernate.connection.username
描述:数据连接的用户名。
示例如下:
<property name="hibernate.connection.username " value="root”/> |
·属性名:hibernate.connection.password
描述:数据连接的密码。
示例如下:
<property name="hibernate.connection.password " value="123”/> |
·属性名:hibernate.dialect
描述:指定不同的数据库,Hibernate底层会根据不同的数据库生成的SQL进行优化,取值如表14-3所示。
表14-3 Hibernate JPA实现不同数据库相关配置的属性
属性名 | 描 述 |
DB2 | org.hibernate.dialect.DB2Dialect |
DB2 AS/400 | org.hibernate.dialect.DB2400Dialect |
DB2 OS390 | org.hibernate.dialect.DB2390Dialect |
PostgreSQL | org.hibernate.dialect.PostgreSQLDialect |
MySQL | org.hibernate.dialect.MySQLDialect |
MySQL InnoDB | org.hibernate.dialect.MySQLInnoDBDialect |
MySQL with MyISAM | org.hibernate.dialect.MySQLMyISAMDialect |
Oracle | org.hibernate.dialect.OracleDialect |
Oracle 9i/10g | org.hibernate.dialect.Oracle9Dialect |
Sybase | org.hibernate.dialect.SybaseDialect |
Sybase Anywhere | org.hibernate.dialect.SybaseAnywhereDialect |
Microsoft SQL Server | org.hibernate.dialect.SQLServerDialect |
SAP DB | org.hibernate.dialect.SAPDBDialect |
Informix | org.hibernate.dialect.InformixDialect |
HypersonicSQL | org.hibernate.dialect.HSQLDialect |
属性名 | 描 述 |
Ingres | org.hibernate.dialect.IngresDialect |
Progress | org.hibernate.dialect.ProgressDialect |
Mckoi SQL | org.hibernate.dialect.MckoiDialect |
Interbase | org.hibernate.dialect.InterbaseDialect |
Pointbase | org.hibernate.dialect.PointbaseDialect |
示例如下:
<property name=" hibernate.dialect " value="org.hibernate.dialect.MySQLDialect”/ |