Dao四種比較
JDBCtemplate+JDBC+Mybatis+ Hibernate
1.JDBC。手動(dòng)事務(wù)管理+資源cintenct
2.JDBCtemplate。解決:Spring封裝+spring事務(wù)管理+資源創(chuàng)建,
有一點(diǎn)遺憾:不是orm框架導(dǎo)致沒(méi)有映射關(guān)系;
3.Mybatis(映射關(guān)系,就是把sql寫在xml中,可以返回Modle,如果是多表聯(lián)查我們就返回一個(gè)list,如果要將數(shù)據(jù)庫(kù)字段和頁(yè)面的字段不同,就是使用resultMap進(jìn)行映射)和
4.Hibernate(純粹ORM框架通過(guò)操作對(duì)象來(lái)控制數(shù)據(jù)庫(kù),查詢時(shí)寫語(yǔ)句時(shí),Hql麻煩。Sql不規(guī)范)。
Mybatis的話,我對(duì)它的理解是,它整體來(lái)說(shuō)是一個(gè)ORM框架,ORM是一個(gè)關(guān)系對(duì)象映射,為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)存在的互不匹配的現(xiàn)象的技術(shù);它主要的一個(gè)思想是:通過(guò)操作對(duì)象來(lái)控制數(shù)據(jù)庫(kù),現(xiàn)在大多數(shù)的數(shù)據(jù)庫(kù)都是關(guān)系型數(shù)據(jù)庫(kù)比如Hibernate,他就是一個(gè)原生態(tài)的ORM框架,他們本身是通過(guò)一種映射關(guān)系,我的理解Mybatis它更多是做到了映射的功能,而沒(méi)有真正完全同過(guò)操作操作對(duì)象來(lái)控制數(shù)據(jù)庫(kù),比如通過(guò)修改添加刪除,他可以通過(guò)操作操作對(duì)象來(lái)控制數(shù)據(jù)庫(kù),但是還是要在xml中寫sql語(yǔ)句,Hibernate的話它內(nèi)部可以直接生成Hql語(yǔ)句,而Mybatis還是要手寫sql語(yǔ)句,只是通過(guò)映射的關(guān)系去控制數(shù)據(jù)庫(kù),就相當(dāng)于在數(shù)據(jù)庫(kù)與java類中間建了一個(gè)橋梁,這就是他的思想。比Hibernate在某種程度上可以說(shuō)是簡(jiǎn)單的,Hibernate它也有映射,但是它僅僅映射完后,它的sql都是通過(guò)hql語(yǔ)句生成的,但是當(dāng)遇到一些查詢語(yǔ)句時(shí),寫起來(lái)就非常麻煩,而Mybatis可以通過(guò)這種映射然后將它很好的去處理了.