1. 程式人生 > >hibernate相關面試題(不看後悔,一看必懂)

hibernate相關面試題(不看後悔,一看必懂)

概述

hibernate框架應用在dao層,,hibernate的底層程式碼是jdbc,它是一個開源的輕量級的框架.

hibernate通過orm思想對資料庫進行crud操作.orm中文翻譯過來就是物件關係對映,它讓實體類(就是通常所說的pojo)和資料庫表對應,讓實體類的欄位和表裡的欄位對應,通過操作實體類物件來操作資料庫表.

需要在src下面書寫hibernate.cfg.xml核心配置檔案,可以在該核心配置檔案中配置連線資料庫的資訊,還可以配置hibernate的資訊(例如配置資料庫的方言),還需要把對映檔案放在核心配置檔案中..表與表之間的對映關係有一對一,一對多,多對多,這些關係都可以在對映檔案中進行配置

對映檔案用來配置實體類和資料庫表一一對應關係..hibernate要求實體類裡面有一個屬性作為唯一的值來對應表的主鍵,主鍵可以有不同的生成策略,比如說native主鍵自增長和UUID

可以呼叫HibernateTemplate中的方法實現crud的操作,也可以使用HQL語句(通過書寫hql語言)和QBC語句(不用寫語句,通過呼叫方法實現)實現查詢

對映配置檔案(類名.hbm.xml)

對映配置檔案的名稱和路徑沒有特別要求,最好命名為 類名.hbm.xml,路徑最好和實體類放在一起,路徑的位置需要放在核心配置檔案中

<hibernate-mapping>

<!-- 1 配置類和表對應

class標籤

name屬性:實體類全路徑

table屬性:資料庫表名稱

-->

<class name="cn.itcast.entity.User" table="t_user">

<!-- 2 配置實體類id和表id對應

hibernate要求實體類有一個屬性唯一值

hibernate要求表有欄位作為唯一值

-->

<!-- id標籤

name屬性:實體類裡面id屬性名稱

column屬性:生成的表字段名稱

 -->

<id name="uid"

 column="uid">

<!-- 設定資料庫表id增長策略

native:生成表id值就是主鍵自動增長

-->

<generator class="native"></generator>

</id>

<!-- 配置其他屬性和表字段對應

name屬性:實體類屬性名稱

column屬性:生成表字段名稱

-->

<property name="username" column="username"></property>

<property name="password" column="password"></property>

<property name="address" column="address"></property>

</class>

</hibernate-mapping>

核心配置檔案

第四步 建立hibernate的核心配置檔案

(1)核心配置檔案格式xml,但是核心配置檔名稱和位置固定的

- 位置:必須src下面

- 名稱:必須hibernate.cfg.xml

(2)引入dtd約束

(3)hibernate操作過程中,只會載入核心配置檔案,其他配置檔案不會載入

第一部分: 配置資料庫資訊 必須的

第二部分: 配置hibernate資訊 可選的

第三部分: 把對映檔案放到核心配置檔案中

一對多對映配置

一般來說,在一對多對映配置中,一的一方的主鍵作為多的一方的外來鍵(即一的一方為僅有的外來鍵),主鍵和外來鍵的名稱可以不一致

多對多對映配置

hibernate的hql和qbc查詢