hibernate01 概念 正向工程 反向工程

2021-08-27 22:41:23 字數 3697 閱讀 4685

第一:概念

19.查詢可以不用事務,因為查詢對資料庫沒有影響。

20.get是單條查詢,load也是單條查詢

21.hibernate_seqence.nextval

22.查詢query,criteria

23.分頁:setmaxresult:每頁有幾個,setfirstresult:起始頁。預設資料庫中的資料的下標是從0開始的

scheam:是當前使用者。關注jqueryui。。。注意springmvc跟struts是相同的。ibatise跟hibernate是相同的

--------------

criteria  c =session.createcriteria(news.class);是查詢全部的一種方法,

c.setmaxresults(3);和c.setfirstresult(1);是分頁要用的

------------

hibernate是對jdbc的輕量級物件封裝, hibernate本身是不具備事務處理功能的,hibernate事務實際上是底層的jdbc事務的封裝,或者是jta事務的封裝hibernate的jdbctransaction根本就是conn.commit而已,根本毫無神秘可言,

只不過在hibernate中, session開啟的時候,就會自動conn.setautocommit(false),不像一般的jdbc,預設都是true,所以你最後不寫 commit也沒有關係,

由於hibernate已經把autocommit給關掉了,所以用hibernate的時候,你在程式中不寫transaction的話,資料庫根本就沒有反應。

這個屬性標籤中有四個引數可以寫,這四個引數是對資料庫中插入的進行不同的操作,分別為:

(1)create-drop

(2)create

(3)update

(4)validate

下面分別來介紹他們的作用以及對資料庫中的影響

(1)create-drop

create-drop:表示在hebarinate初始化時建立**,程式執行結束的時候會刪除相應的**,在實際專案中不用

(2)create

在hibernate初始化時會建立**,在執行結束之後不刪除**,而是在下一次執行的時候如果有舊的刪掉,沒有舊的,重新建**

(3)update

只是根據對映檔案去和資料庫中的表對應起來,如果不一致,就更新表的結構

(4)validate

校驗對映檔案和資料庫中的表是不是能對應起來,不能對應報錯,實際中常用

注:在使用的時候必須要慎重,我就是在當時學習的時候所設定的屬性是validate,所以只要改了資料庫名就會拋初始化異常,當時我鬱悶了半天都不知道是怎麼回事,沒有往這方面想,後來才知到balidate是在沒有資料庫名的時候不讓你建立,會拋異常的。

第二:帶注釋的說明

1.實體類

package com.pojo;

public class testtable

public void settid(int tid)

public string gettname()

public void settname(string tname)

2.對映檔案

3.hibernate主配置檔案

<?xml version='1.0' encoding='utf-8'?>

">

chujdbc:oracle:thin:@localhost:1521:orcl

chu1

1234

oracle.jdbc.oracledriver

org.hibernate.dialect.oracle9dialect

update

true

true

4.公共的hibernate工廠類

package com;

import org.hibernate.hibernateexception;

import org.hibernate.session;

import org.hibernate.cfg.configuration;

/*** configures and provides access to hibernate sessions, tied to the

* current thread of execution.  follows the thread local session

* pattern, see .

*/public class hibernatesessionfactory catch (exception e)

}private hibernatesessionfactory()

/*** returns the threadlocal session instance.  lazy initialize

* thesessionfactoryif needed.

**  @return session

*  @throws hibernateexception

*/public static session getsession() throws hibernateexception

session = (sessionfactory != null) ? sessionfactory.opensession()

: null;

threadlocal.set(session);

}return session;

}/**

*  rebuild hibernate session factory**/

public static void rebuildsessionfactory() catch (exception e)

}/**

*  close the single hibernate session instance.

**  @throws hibernateexception

*/public static void closesession() throws hibernateexception

}/**

*  return session factory**/

public static org.hibernate.sessionfactory getsessionfactory()

/***  return session factory

** session factory will be rebuilded in the next call

*/public static void setconfigfile(string configfile)

/***  return hibernate configuration**/

public static configuration getconfiguration()

5.真正的dao層呼叫

package com.dao;

import org.hibernate.session;

import org.hibernate.sessionfactory;

import org.hibernate.transaction;

import org.hibernate.cfg.configuration;

import com.pojo.testtable;

public class testdao

}

Hibernate 01 配置檔案

hibernate 配置檔案 此內容用於新手上路 hibernate配置檔案支援兩種形式,一種是xml格式的配置檔案,另一種是j a屬性檔案格式的配置檔案,採用 鍵值 的形式。建議採用xml格式的配置檔案。xml配置檔案可以直接巴對對映檔案進行配置,並由hibernate自動載入,而properti...

01 基礎概念

介面說明 s 表示序列介面 g 表示1000mb乙太網介面 f 表示100mb乙太網介面 e 表示10m乙太網介面 ap 無線接入點 wlc 無線控制器 osi參考模型 分別為 物理層,鏈路層,網路層,傳輸層,會話層,表示層,應用層 物理層 提供物理裝置,網絡卡,網線,各種傳輸媒介。鏈路層 封裝成資...

01 Hibernate簡單介紹

可以理解成是乙個半成品專案,它封裝了一些功能,我們不需要操心它是怎麼實現的,只需要掌握它的使用。框架可以提高開發效率。物件導向概念 面向關係概念類表 物件表的行 記錄 屬性表的列 字段 orm思想 將關聯式資料庫中表中的記錄對映成為物件,以物件的形式展現,程式設計師可以把對資料庫的操作轉化為對資料庫...