Hibernate與Jdbc的效率測試

2021-08-22 18:39:53 字數 1830 閱讀 3424

首先,建資料庫表,採用mysql資料庫。

create table `t_jobstat` (

`id` bigint(20) unsigned not null auto_increment,

`jobno` varchar(45) default null,

`clicksum` int(10) unsigned default null,

`showsum` int(10) unsigned default null,

`mailsum` int(10) unsigned default null,

`locationid` varchar(10) default null,

`logdate` char(8) default null,

primary key (`id`)

) engine=myisam auto_increment=7320077 default charset=gbk max_rows=500000000;

其次,插入大批量資料,本次測試,插入730萬條資料。

一.jdbc測試

主要方法如下:

1.資料訪問層

/**

* 檢索前1000條記錄

* @return

* @throws sqlexception

*/public listfindall() throws sqlexception

return list;

}

2.action層

/**

* 檢索前1000條記錄

* @param form

* @param request

* @param response

* @return

* @throws exception

*/httpservletrequest request, httpservletresponse response) throws exception

3.我們開啟乙個測試頁面,http://localhost:8080/jdbctest/jobstat.do?p=findtop

然後將預設瀏覽器設為能開啟多tab頁的遨遊,狂點測試頁,最後資料取出速度穩定在16ms左右。

二.hibernate  test

1.dao訪問層

public static void main(string args) throws unsupportedencodingexception
2進行資料量測試,當資料庫中未建主鍵測試中,取出1000條資料花費時間為680ms,當主鍵索引存在後,取出1000條資料花費時間為530ms

綜上測試,

1.程式設計思想上,更加符合人的邏輯思維習慣,物件導向比面向過程更加容易理解,測試和維護

2.開發維護速度上,hibernate顯著的快,**量顯著小

3.通過annotation進行資料庫的字段加密

4.對sql不熟的菜鳥來說可以自動調優

5.結合spring,通過宣告式事務可以省略事務的控制,事務以橫切面形式出現

jdbc比hibernate具備的優勢有:

1.大資料量訪問時,jdbc的效率顯著快

2.直接運算元據庫比較靈活

hibernate比jdbc慢的地方:

1.將hql語句轉化為標準sql語句,花費時間可以忽略不急

2.將resultset中資料組裝為實體物件,如果即所得資料量比較大(比如一次檢索1000條資料),這是效率就會降低,在組裝實體物件花費時間較長

檢索單錶的1000條資料,hibernate與jdbc均不會超過1s鐘.

hibernate與jdbc的比較

優點 一 物件導向 hibernate可以讓開發人員以物件導向的思想來運算元據庫。jdbc只能通過sql語句將元資料傳送給資料庫,進行資料操作。而hibernate可以在底層對元資料和物件進行轉化,使得開發者只用物件導向的方式來訪問資料即可。二 移植性 hibernate使用xml或jpa的配置以及...

hibernate與jdbc的區別(簡略)

今天看了看老師給的專案,其中的對資料的查詢跟我想象中的不一樣,所以就找了一些資料,大概清楚了這是個啥東西 就當做筆記吧 hibernate 物件導向的物件關係對映框架 hql hibernate query language,hibernate查詢語言 sql structured query la...

hibernate4使用原生jdbc進行批處理

在hibernate中,有一級快取session和二級快取sessionfactory這些機制,一方面為編碼提供了便利,同時也會有一些 比如有較大的資料量互動的話,快取反而會降低效率。最近在做乙個有關批量更新的程式,在呼叫session.update 之後,物件會儲存在快取中,如果資料量超過快取的容...