1.核心配置文件
對於hibernate的核心配置文件它有兩種方式(選其中一種便可):
- hibernate.cfg.xml
- hibernate.properties
咱們在開發中使用比較多的是hibernate.cfg.xml這種方式,緣由它的配置能力更強,易於修改
咱們主要講解的是hibernate.cfg.xml配置
1.能夠加載數據庫相關信息
<!-- 配置關於數據庫鏈接的四個項 driverClass url username password -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
2.hibernate相關配置
<!-- 能夠將向數據庫發送的sql顯示出來 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化sql -->
<property name="hibernate.format_sql">true</property>
<!-- hibernate的方言(告知連接的數據庫類型MySQL爲例) -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
3.加載映射配置文件
<!-- 配置hibernate的映射文件所在位置 -->
<mapping resource="cn/itheima/domain/Customer.hbm.xml" />
對於hibernate.cfg.xml配置文件中的內容能夠參考hibernate/project/etc/hibernate.properties的配置
配置下面這些屬性後,咱們能夠進行表的自動建立
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
Create-drop 每次都會建立一個新的表,執行完成後刪除。通常在測試中使用
Create 每次都會建立一個新的表,通常是在測試中使用
update 若是數據庫中有表,不建立,沒有表建立,若是映射不匹配,會自動更新表結構(只能添加)
validate 只會使用存在的表,而且會對映射關係進行校驗.
3.映射配置文件
它通常放置在實體類所在的包下。
這個配置文件的主要做用是創建表與類的映射關係。
1.統一聲明包名,這樣在<class>中就不須要寫類的全名.
2.關於<class>標籤配置
<class name="cn.itcast.domain.Customer" table="t_coustomer" catalog="hibernateTest">
<id></id>
</class>
name屬性:類的全名稱
table 表的名稱,能夠省略,這時表的名稱就與類名一致
catalog屬性:數據庫名稱 能夠省略.若是省略,參考核心配置文件中url路徑中的庫名稱
3.關於<id>標籤
<!-- id用於描述主鍵 -->
<id name="id" column="id">
<!-- 主鍵生成策略 -->
<generator class="native"></generator>
</id>
首先它必須存在。<id>是用於創建類中的屬性與表中的主鍵映射。
name 類中的屬性名稱
column 表中的主鍵名稱 column它也能夠省略,這時列名就與類中屬性名稱一致
length 字段長度
type屬性 指定類型
<generator>它主要是描述主鍵生成策略.
4.關於<property>標籤
<!-- 使用property來描述屬性與字段的對應關係 -->
<property name="name" column="name" length="20"></property>
<property name="address" column="address" length="50"></property>
關於hibernate的映射文件中類型問題
對於type屬性它的取值,能夠有三種:
1.java中的數據類型
2.hibernate中的數據類型
3.SQL的數據類型