<?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 :如果沒有表,不會創建表。只會使用數據庫中原有的表。(校驗映射和表結構)。
例如:如果屬性錯誤,測試會報錯