前言
創(chuàng)新互聯(lián)公司的客戶來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜希瑥膭?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。專業(yè)領(lǐng)域包括成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、電商網(wǎng)站開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā)。在JavaWeb開發(fā)中,最經(jīng)典的就是SSH框架組合和SSM框架組合,現(xiàn)在很多IT公司愿意使用SSM,對(duì)于這里的H和M即Hibernate和MyBatis,今天簡(jiǎn)單來(lái)說(shuō)道說(shuō)道。
班門弄斧
上課時(shí),我經(jīng)常跟學(xué)生說(shuō),學(xué)習(xí)任何一門技術(shù),一定要弄明白:
知識(shí)講解
Hibernate和MyBatis都是很流行的ORM(對(duì)象關(guān)系映射,說(shuō)白了就是一種和數(shù)據(jù)庫(kù)進(jìn)行映射的技術(shù))持久化層框架,其實(shí)質(zhì)是還是對(duì)JDBC進(jìn)行了封裝,方便我們使用,簡(jiǎn)化我們的開發(fā)。先弄明白幾個(gè)問(wèn)題:
為什么引入持久層就可以解決這個(gè)問(wèn)題呢?解析:在持久層可以引入一個(gè)機(jī)制,當(dāng)作一個(gè)翻譯,針對(duì)底層不同的數(shù)據(jù)庫(kù),把HQL語(yǔ)句、動(dòng)態(tài)查詢語(yǔ)句翻譯成不同的SQL語(yǔ)句,這樣就解決了更換數(shù)據(jù)庫(kù)后也不需要改SQL語(yǔ)句的問(wèn)題,而且代碼量也會(huì)大大降低。
說(shuō)的這么好,那么Hibernate和MyBatis到底是怎么實(shí)現(xiàn)上述所說(shuō)的方案的呢,也就是他們的ORM怎么來(lái)實(shí)現(xiàn)?
Hibernate
在Hibernate中這個(gè)機(jī)制就是一個(gè)配置文件hibernate.cfg.xml(放在src目錄下)
jdbc:mysql://localhost/hibernate root saber com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect none true true org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider 5 20 300 100 3000 thread