Hibernate知識點概況(四)

2021-07-26 06:09:18 字數 3781 閱讀 2172

一、hibernate查詢

1.get/load主鍵查詢

2.物件導航查詢

3.hql查詢

private static sessionfactory sf;

static

/* * 1) get/load主鍵查詢

2) 物件導航查詢

3) hql查詢, hibernate query language hibernate 提供的物件導向的查詢語言。

4) criteria 查詢, 完全物件導向的查詢(query by criteria ,qbc)

5) sqlquery, 本地sql查詢

*/@test

public void all()

// g. 連線查詢

@test

public void join()

// g. 連線查詢 - 迫切連線

@test

public void fetch()

// hql查詢優化

@test

public void hql_other() }

4.criteria查詢(完全物件導向的查詢)

//4)	criteria 查詢,

@test

public void criteria()

5.sqlquery(本地sql查詢)

使用場景: 對於複雜sql,hql實現不了的情況,可以使用本地sql查詢。

// 5)	sqlquery, 本地sql查詢

// 不能跨資料庫平台: 如果該了資料庫,sql語句有肯能要改。

@test

public void sql()

6.分頁查詢

分頁sql:先查詢總記錄數,再分頁查詢。

// 分頁查詢

@test

public void all()

二、hibernate對連線池的支援

連線池的作用:

管理連線;提公升連線的利用效率!

常用的連線池: c3p0連線池

hbm 自帶連線池:

只維護乙個連線,比較簡陋。

可以檢視hibernate.properties檔案檢視連線池詳細配置:

hbm對c3p0連線池支援:

#hibernate.c3p0.max_size 2                           最大連線數

#hibernate.c3p0.min_size 2                            最小連線數

#hibernate.c3p0.timeout 5000           超時時間

#hibernate.c3p0.max_statements 100    最大執行的命令的個數

#hibernate.c3p0.idle_test_period 3000    空閒測試時間

#hibernate.c3p0.acquire_increment 2     連線不夠用的時候, 每次增加的連線數

#hibernate.c3p0.validate false每次都驗證連線是否可用

org.hibernate.connection.c3p0connectionprovider24

5000

1030000

2

三、 二級快取

1.概念:

hibernate提供的快取

有一級快取、二級快取。 目的是為了減少對資料庫的訪問次數,提公升程式執行效率!

一級快取

基於session的快取,快取內容只在當前session有效,session關閉,快取內容失效!

特點:作用範圍較小! 快取的事件短。

快取效果不明顯。

二級快取

hibernate提供了基於應用程式級別的快取, 可以跨多個session,即不同的session都可以訪問快取資料。 這個換存也叫二級快取。

hibernate提供的二級快取有預設的實現,且是一種可插配的快取框架!如果使用者想用二級快取,只需要在hibernate.cfg.xml中配置即可;不想用,直接移除,不影響**。

如果使用者覺得hibernate提供的框架框架不好用,自己可以換其他的快取框架或自己實現快取框架都可以。

2.使用二級快取:

檢視hibernate.properties配置檔案,二級快取如何配置?

### second-level cache ###

#hibernate.cache.use_second_level_cachefalse【二級快取預設不開啟,需要手動開啟】

#hibernate.cache.use_query_cache true      【開啟查詢快取】

## choose a cache implementation               【二級快取框架的實現】

#hibernate.cache.provider_class org.hibernate.cache.ehcacheprovider

#hibernate.cache.provider_classorg.hibernate.cache.emptycacheprovider

hibernate.cache.provider_classorg.hibernate.cache.hashtablecacheprovider 預設實現

#hibernate.cache.provider_classorg.hibernate.cache.treecacheprovider

#hibernate.cache.provider_classorg.hibernate.cache.oscacheprovider

#hibernate.cache.provider_classorg.hibernate.cache.swarmcacheprovider

二級快取,使用步驟

1) 開啟二級快取

2)指定快取框架

3)指定那些類加入二級快取

4)測試測試二級快取!

3.快取策略

放入二級快取的物件,唯讀;

非嚴格的讀寫

讀寫; 放入二級快取的物件可以讀、寫;

(基於事務的策略)

4.集合快取

<

collection-cache

usage="read-write"

collection="cn.itcast.b_second_cache.dept.emps"

/>

5.查詢快取

list() 預設情況只會放入快取,不會從一級快取中取!

使用查詢快取,可以讓list()查詢從二級快取中取!

6.二級快取完整案例

6.1hibernate.cfg.xml配置

true

org.hibernate.cache.hashtablecacheprovider

true

6.2測試類

private static sessionfactory sf;

static

// 1. 測試二級快取的使用

// 沒有/有用 二級快取

@test

public void testcache()

@test

public void listcache()

}

JQUery知識點概況

jquery是乙個js得框架,可以簡化js,ajax。1.選擇器 常見有根據id來找 id 根據標記得tagname來找 標記 根據屬性來找 input name newsletter 根據樣式表 樣式名 得到使用這個樣式得素有得元素.選擇器支援層次關係,父子關係查詢 form input form...

Hibernate 小知識點

今天比較忙沒怎麼寫 知識一些曉得知識或是經驗吧!1.lazy延遲載入 也可以說是需要的時候再區載入 場景 乙個類如person和address,person可以通過getaddress 來得到address的set集合.有乙個dao控制類operation.方法public person query...

Hibernate小知識點總結

持久化 程式資料在瞬時狀態和持久狀態間轉換的過程 1 編寫程式時,以物件導向方式處理資料 2 儲存資料時,以關係型資料庫方式儲存 orm解決方案 1 對持久化物件提供一種查詢語言或api 2 在持久化物件上執行基本的增 刪 改 查操作 3 物件關係對映工具 4 提供與事務物件互動 執行檢查 延遲載入...