一、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 提供與事務物件互動 執行檢查 延遲載入...