Mybatis入门及于hibernate的区别
pojo:不按mvc分層,只是java bean有一些屬性,還有get set方法
domain:不按mvc分層,只是java bean有一些屬性,還有get set方法
po:用在持久層,還可以再增加或者修改的時候,從頁面直接傳入action中,它里面的java bean 類名等于表名,
屬性名等于表的字段名,還有對應的get set方法
vo: view object表現(xiàn)層對象,主要用于在高級查詢中從頁面接收傳過來的各種參數(shù).好處是擴展性強
bo: 用在servie層,現(xiàn)在企業(yè)基本不用.
這些po,vo, bo,pojo可以用在各種層面嗎
可以,也就是po用在表現(xiàn)層,vo用在持久層不報錯,因為都是普通的java bean沒有語法錯誤.
但是在企業(yè)最好不要混著用,因為這些都是設計的原則,混著用比較亂.不利于代碼維護.
自學方法論: 理論 -> 實踐 -> 理論 -> 實踐 反復迭代三遍
總結:
1. mybatis是一個持久層框架, 作用是跟數(shù)據(jù)庫交互完成增刪改查
2.原生Dao實現(xiàn)(需要接口和實現(xiàn)類)
4.動態(tài)代理方式(只需要接口)
mapper接口代理實現(xiàn)編寫規(guī)則:
1) 映射文件中namespace要等于接口的全路徑名稱
2) 映射文件中sql語句id要等于接口的方法名稱
3) 映射文件中傳入?yún)?shù)類型要等于接口方法的傳入?yún)?shù)類型
4) 映射文件中返回結果集類型要等于接口方法的返回值類型
5. #{}占位符:占位
如果傳入的是基本類型,那么#{}中的變量名稱可以隨意寫
如果傳入的參數(shù)是pojo類型,那么#{}中的變量名稱必須是pojo中的屬性.屬性.屬性...
6. ${}拼接符:字符串原樣拼接
如果傳入的是基本類型,那么${}中的變量名必須是value
如果傳入的參數(shù)是pojo類型,那么${}中的變量名稱必須是pojo中的屬性.屬性.屬性...
注意:使用拼接符有可能造成sql注入,在頁面輸入的時候可以加入校驗,不可輸入sql關鍵字,不可輸入空格
7. 映射文件:
1)傳入?yún)?shù)類型通過parameterType屬性指定
2)返回結果集類型通過resultType屬性指定
8. hibernate和mybatis區(qū)別:
hibernate:它是一個標準的orm框架,比較重量級,學習成本高.
優(yōu)點:高度封裝,使用起來不用寫sql,開發(fā)的時候,會減低開發(fā)周期.
缺點:sql語句無法優(yōu)化
應用場景:oa(辦公自動化系統(tǒng)), erp(企業(yè)的流程系統(tǒng))等,還有一些政府項目,
總的來說,在用于量不大,并發(fā)量小的時候使用.
mybatis:它不是一個orm框架, 它是對jdbc的輕量級封裝, 學習成本低,比較簡單
有點:學習成本低, sql語句可以優(yōu)化, 執(zhí)行效率高,速度快
缺點:編碼量較大,會拖慢開發(fā)周期
應用場景: 互聯(lián)網(wǎng)項目,比如電商,P2p等
總的來說是用戶量較大,并發(fā)高的項目.
轉載于:https://www.cnblogs.com/baibin-520/p/10229070.html
總結
以上是生活随笔為你收集整理的Mybatis入门及于hibernate的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QDU-GZS and String
- 下一篇: 3.4 链接