亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
java - JDBC,Mybatis,hibernate 一些問(wèn)題
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-04-17 11:54:46
[Java討論組]

已開始學(xué)習(xí)的是 JDBC 后來(lái)看了 hibernate,感覺(jué)比 JDBC 麻煩,又看了 Mybatis,還是感覺(jué)比 JDBC 麻煩,特別是配置 xml

而在網(wǎng)上看了很多 JDBC,Mybatis,hibernate 這3個(gè)對(duì)比,性能都沒(méi)法和 JDBC 對(duì)比,那為什么還出現(xiàn) Mybatis,hibernate 呢?

是不是因?yàn)槭浅鯇W(xué)者,一些復(fù)雜的功能還沒(méi)遇到?

學(xué) java Mybatis,hibernate 必須要學(xué)嗎?

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證0級(jí)講師

全部回復(fù)(5)
伊謝爾倫

jdbc sql都在class中的.比如未來(lái)的某一天,你需要改sql語(yǔ)句,你得找到源文件,修改sql.然后在編譯成class.再放到服務(wù)器上,然后重啟,生效.

如果框架呢.sql寫在配置文件中,需要修改sql 改動(dòng)配置文件就好了,(避免硬編碼.)

hibernate企業(yè)開發(fā)中使用的概率逐漸減少.被mybatis取代.hibernate做稍復(fù)雜的查詢不如sql來(lái)到簡(jiǎn)單.

如果您看過(guò)數(shù)據(jù)庫(kù)操作框架的源碼..就知道 底層還是jdbc來(lái)完成最數(shù)據(jù)庫(kù)的鏈接的.

怪我咯

Mybatis和hibernate是對(duì)JDBC進(jìn)一步的封裝,底層還是基于JDBC實(shí)現(xiàn)的。Hibernate用的不算深入,只談自己對(duì)Mybatis使用的感覺(jué),相對(duì)于直接使用JDBC有以下好處:
1、JDBC釋放資源的寫法很容易出錯(cuò),使用框架后這個(gè)問(wèn)題就基本不存在了。即使用JDBC,一般也要封裝一個(gè)Util類來(lái)處理,如Srping的JDBC Template,否則每個(gè)SQL語(yǔ)句外面包一大坨try/catch語(yǔ)句太麻煩了。
2、對(duì)于常見的多個(gè)選擇參數(shù)的查詢頁(yè)面,使用mybatis的標(biāo)簽很容易處理多個(gè)參數(shù)組合使用的情況,相比較寫JDBC的拼接字符串要容易。
3、如果項(xiàng)目中使用的是java的實(shí)體類,使用Mybatis可以方便的實(shí)現(xiàn)數(shù)據(jù)庫(kù)行和對(duì)象的映射,手工寫JDBC的話這部分的代碼量會(huì)比較大,而且重復(fù)性很高。

性能方面,如果只比較sql語(yǔ)句,JDBC的性能是最好的,畢竟Mybatis和hibernate封裝JDBC后框架自身還是有開銷的,但Mybatis和JDBC相比,性能應(yīng)該差異不大。但考慮到這兩個(gè)框架都自帶了緩存機(jī)制,用好的話應(yīng)該比單純的JDBC性能要高。

怪我咯

我想大大們都很忙,沒(méi)時(shí)間回答,我就借題說(shuō)下我了解一二。

JDBC是 操作數(shù)據(jù)庫(kù) 很基礎(chǔ)的部分,確實(shí)很麻煩,開發(fā)用它有著諸多不便(工作量上),所以有了后面幾種封裝后的框架。 這里多說(shuō)點(diǎn):它確實(shí)需要寫很多東西,需要在意一些東西(如 做CRUD 時(shí),大量數(shù)據(jù)的處理; 選擇預(yù)編譯的方式操作)。大公司會(huì)用這個(gè),他們自己在這個(gè)基礎(chǔ)上簡(jiǎn)單封裝下,做些自己的處理,就可以拿來(lái)用了,他們技術(shù)能夠支持,也能提高一些性能。

用后面的集成框架時(shí)能提高開發(fā)的效率

mybatis 半自動(dòng)化 的框架。 鏈接,釋放,安全給你考慮的差不多了,就只需要你在xml去寫 CRUD就ok了

hibernate: 全自動(dòng)化框架。 這個(gè)不需要在xml寫CRUD,在java代碼里面寫就ok

能大概看懂就成,現(xiàn)在這些也就是都用了一下,體會(huì)也不大深刻,以后有更深體驗(yàn)再補(bǔ)充。

大家講道理

hibernate和mybatis是orm框架,底層封裝了jdbc,所以效率上肯定沒(méi)有jdbc高,另外你也說(shuō)了jdbc麻煩,所以前面的2個(gè)框架在封裝jdbc的時(shí)候,抽取了重復(fù)的步驟,使得開發(fā)者避免了這些重復(fù)工作,開發(fā)更高效快速了。另外企業(yè)開發(fā)都講究開發(fā)效率,節(jié)約成本,所以企業(yè)會(huì)大量使用。另外建議初學(xué)者不要這么快接觸框架,先學(xué)好java se和java ee,做點(diǎn)東西,再去學(xué)框架,這樣比較好理解;也會(huì)讓你認(rèn)識(shí)到開發(fā)大一點(diǎn)應(yīng)用其實(shí)這些框架還是必須的:能提高很多開發(fā)效率

伊謝爾倫

jdbc是基礎(chǔ),但是快速開發(fā)起來(lái)麻煩,于是產(chǎn)生了ORM,Hibernate是想向開發(fā)人員屏蔽關(guān)系數(shù)據(jù)庫(kù)的模型,但是代價(jià)太大,學(xué)習(xí)成本高,需要搞懂對(duì)象的各種單向雙向等關(guān)系;mybatis是半orm,同樣也是提升效率,采取更輕量級(jí)的模式。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)