Java學習之hibernate(二)

2021-08-21 05:30:57 字數 1673 閱讀 9128

自動生成表結構

(etc/hibernate.properties)

update(常用)

自動生成表結構 如果對映檔案和資料庫表字段不對應 將會修改表的字段

但是原來表的字段不會改變 會新增字段

create

每次執行都會建立乙個新的表(資料丟失)

create-drop

每次執行都會建立乙個新的表,並且每次執行結束都會把這個表刪除

validate

每次都會驗證表結構 如果實體類與對映檔案不同 會丟擲乙個異常

主鍵分類

主鍵的規則:不能重複 不能修改

1.自然主鍵

表裡面 有乙個字段 符合主鍵的規則

就直接使用這個字段 作為主鍵

身份證號

2.**主鍵

表裡面 沒有乙個字段 符合主鍵的規則    

自己建立 id 作為表的主鍵 這個鍵就叫**主鍵

主鍵生成策略(7種) 

identity

主鍵自增 使用資料庫當中的主鍵自增

插入時 列印的sql語句中 不會插入id

increment

主鍵自增 由hibernate來管理

插入資料時 先去資料庫中查詢當前的最大id

然後 把查出來的id + 1 再插入資料

uuid

全球不重複唯一標識 32位 字串

注意:id必須使用字串型別

native(最常用 三合一)

根據使用的資料庫型別來選擇使用哪個策略

所有資料庫都支援identity或者sequence

identity + sequence + hilo

hilo (高低位演算法)

將主鍵交給hibernate處理 使用自己的演算法 幫你維護主鍵

assigned

由自己維護主鍵 插入資料時需要有主鍵

使用的**主鍵

sequence oracle 預設的

獲取session的封裝方法

package com.lanou3g.utils;

import org.hibernate.session;

import org.hibernate.sessionfactory;

import org.hibernate.cfg.configuration;

/* * 作用

* 獲取session物件

*/public class hibernateutil

// 獲取session的方法

// 建立乙個全新的session

public static session getopensession()

// 獲取當前使用的session

// 注意:使用該方法 必須在主配置檔案中配置一下

public static session getcurrentsession()

public static void close()

}

hibernate操作物件的三種狀態

1.瞬時態 沒有id 沒有跟session產生關係

2.持久態 有id 有跟session產生關係

3.游離態 有id 沒跟session產生關係

hibernate在運算元據庫的時候就是將持久態的資料同步到資料庫中

Spring 學習筆記整合 Hibernate

spring和hibernate處於不同的層次,spring關心的是業務邏輯之間的組合關係,spring提供了對他們的強大的管理能力,而hibernate完成了or的對映,使開發人員不用再去關心sql語句,直接與物件打交道。spring提供了對hibernate的sessionfactory的整合功...

java學習之this 用法

關於this,基本的用法是 1 使用this呼叫成員變數或成員函式 2 使用this呼叫建構函式 舉例 建立乙個person類 class person string name 定義三個成員變數 int age string adress person system.out.println 無參建構...

java學習之介面

inte ce 成員常量 public static final 成員函式 public abstract介面是不可以建立物件的,因為有抽象方法。子類對介面中的抽象方法全部實現後,子類才能夠例項化,否者子類是乙個抽象類。介面是對外暴露的規則 介面是程式的功能擴充套件 介面可以用來多實現 類與介面之間...