Hibernate:
優(yōu)點(diǎn):
1疗绣、全自動(dòng),hibernate完全可以通過(guò)實(shí)體bean來(lái)完成數(shù)據(jù)庫(kù)操作铺韧,不用寫(xiě)sql多矮;
2、有良好得二級(jí)緩存機(jī)制哈打,默認(rèn)用用的是sessionfactoryimpl的cacheimpl子類(lèi)去實(shí)現(xiàn)的塔逃,可以使用第三方緩存框架:ehcache等;
3料仗、數(shù)據(jù)庫(kù)移植性好湾盗;
4、支持級(jí)聯(lián)操作立轧,更新格粪、刪除、查詢(xún)等
缺點(diǎn):
1氛改、學(xué)習(xí)帐萎、精通門(mén)檻較高;
2胜卤、sql都是自動(dòng)生成的疆导,遇到報(bào)表統(tǒng)計(jì)的需求hql查詢(xún)有局限性;
MyBatis:
優(yōu)點(diǎn):
1葛躏、易于上手是鬼,對(duì)于對(duì)象模型沒(méi)有高的要求肤舞;
2、寫(xiě)sql語(yǔ)句操作均蜜,并且定義在xml中也可以解除sql語(yǔ)句與程序代碼的耦合李剖;
3、支持動(dòng)態(tài)sql囤耳;
4篙顺、速度相對(duì)hibernate快;
5充择、提供映射標(biāo)簽德玫,例如:select、update椎麦、delete宰僧、等;
缺點(diǎn):
1观挎、表琴儿、字段多的時(shí)候,sql編寫(xiě)的工作量較大嘁捷;
2造成、sql依賴(lài)于數(shù)據(jù)庫(kù),導(dǎo)致數(shù)據(jù)庫(kù)移植性差雄嚣;
3晒屎、由于xml中的id必須唯一,所以dao中的方法不支持重載缓升;
4鼓鲁、數(shù)據(jù)組裝工作量較大;
5港谊、不支持級(jí)聯(lián)操作骇吭;
6、動(dòng)態(tài)sql不方便調(diào)試封锉,尤其是邏輯復(fù)雜時(shí)绵跷;