1. 程式人生 > >Hibernate ---核心配置檔案(Hibernate.cfg.xml)詳解

Hibernate ---核心配置檔案(Hibernate.cfg.xml)詳解

<?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 元素用於配置Hibernate中的屬性
            鍵:值 
          -->
          <!-- hibernate.connection.driver_class : 連線資料庫的驅動  -->


        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
          <!-- hibernate.connection.username : 連線資料庫的使用者名稱 -->
        <property name="hibernate.connection.username">root</property>
          <!-- hibernate.connection.password : 連線資料庫的密碼 -->

        <property name="hibernate.connection.password">1234</property>
          <!-- hibernate.connection.url : 連線資料庫的地址,路徑 -->
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/EE19Day01</property>
        
        <!-- show_sql: 操作資料庫時,會 向控制檯列印sql語句 -->

        <property name="show_sql">true</property>

        <!-- format_sql: 列印sql語句前,會將sql語句先格式化  -->
        <property name="format_sql">true</property>

        <!-- hbm2ddl.auto: 生成表結構的策略配置
             update(最常用的取值): 如果當前資料庫中不存在表結構,那麼自動建立表結構. 
                                                 如果存在表結構,並且表結構與實體一致,那麼不做修改
                                                 如果存在表結構,並且表結構與實體不一致,那麼會修改表結構.會保留原有列.
             create(很少):無論是否存在表結構.每次啟動Hibernate都會重新建立表結構.(資料會丟失)
             create-drop(極少): 無論是否存在表結構.每次啟動Hibernate都會重新建立表結構.每次Hibernate執行結束時,刪除表結構.
             validate(很少):不會自動建立表結構.也不會自動維護表結構.Hibernate只校驗表結構. 如果表結構不一致將會丟擲異常.
          -->
        <property name="hbm2ddl.auto">update</property>
        
        <!-- 資料庫方言配置   org.hibernate.dialect.MySQLDialect (有三個值可以選擇,選擇最短的) -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
        <!-- hibernate.connection.autocommit: 事務自動提交  -->
        <property name="hibernate.connection.autocommit">true</property>


        <!-- 將Session與執行緒繫結=> 只有配置了該配置,才能使用getCurrentSession -->
        <property name="hibernate.current_session_context_class">thread</property>


        <!-- 引入ORM 對映檔案 ,  填寫src之後的路徑  。  例如:User.hbm.xml -->
        <mapping resource="com/itheima/a_hello/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>