<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!--核心配置-->
<session-factory>
<!--连接数据库配置-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">0000</property>
<!-- 配置Hibernate的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 可选配置================ -->
<!-- 打印SQL -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化SQL -->
<property name="hibernate.format_sql">true</property>
<!-- 自动创建表 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--引入配置文件-->
<mapping resource="com/jjxy/hibernate/Customer.hbm.xml"/>
</session-factory>
</hibernate-configuration>
常用的配置属性
属性名称 | 属性和描述 |
---|---|
hibernate.dialect | 数据库方言设置 |
hibernate.connection.driver_class | 连接数据驱动程序 |
hibernate.connection.url | 数据库实例的 JDBC URL。 |
hibernate.connection.username | 数据库用户名。 |
hibernate.connection.password | 数据库密码。 |
hibernate.connection.show_sql | 控制台输出SQL语句 |
hibernate.connection.format_sql | 格式化控制台输出SQL语句 |
hibernate.hbm2ddl.auto | 自动创建|更新|验证数据库表结构、参数有validate、update、create、create-drop |
hibernate.connection.autocommit | 事务是否自动提交模式。 |
hibernate.connection.isolation | 设置事务隔离级别.取值为 1、2、4、8 1 : READ_UNCOMMITED 读取未提交,它引发所有的隔离问题 2 : READ_COMMITTED 读取已提交,阻止脏读,可能发生不可重复读与虚读 4 : REPEATABLE_READ 重复读,阻止脏读,不可重复读,可能发生虚读 8 : SERIALIZABLE 串行化,解决所有问题,不允许两个事务,同时操作一个目标数据。(效率低) ORACLE 默认的事务隔离级别是READ_COMMITTED MYSQL 默认的事务隔离级别是REPEATABLE_READ |
hibernate.hbm2ddl.auto参数解析 :
none :不使用hibernate的自动建表
create :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表。(测试)
create-drop :如果数据库中已经有表,删除原有表,执行操作,删除这个表。如果没有表,新建一个,使用完了删除该表。(测试)
update :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)
例如:更改表中的字段的名,会添加新的一个属性
validate :如果没有表,不会创建表。只会使用数据库中原有的表。(校验映射和表结构)。
例如:如果属性错误,测试会报错