Mybatis開發流程簡介
mybatis是什麼?
mybatis是一個持久層框架,mybatis是一個不完全的ORM框架。sql語句需要程式設計師自己去編寫,但是mybatis也有對映(輸入引數對映、輸出結果對映)。mybatis入門門檻不高,學習成本低,讓程式設計師把精力放在sql語句上,對sql語句優化非常方便,適用與需求變化較多專案,比如網際網路專案。
mybatis框架執行過程:
1、配置mybatis的配置檔案,SqlMapConfig.xml(名稱不固定)
2、通過配置檔案,載入mybatis執行環境,建立SqlSessionFactory會話工廠
SqlSessionFactory在實際使用時按單例方式。
3、通過SqlSessionFactory
SqlSession是一個面向使用者介面(提供操作資料庫方法),實現物件是執行緒不安全的,建議sqlSession應用場合在方法體內。
4、呼叫sqlSession的方法去操作資料。
如果需要提交事務,需要執行SqlSession的commit()方法。
5、釋放資源,關閉SqlSession
mybatis開發dao的方法:
1、原始dao 的方法
需要程式設計師編寫dao介面和實現類
需要在dao實現類中注入一個SqlSessionFactory工廠。
2、mapper代理開發方法(建議使用)
只需要程式設計師編寫mapper介面(就是dao介面)
程式設計師在編寫mapper.xml(對映檔案
1、mapper.xml中namespace就是mapper.java的類全路徑。
2、mapper.xml中statement的id和mapper.java中方法名一致。
3、mapper.xml中statement的parameterType指定輸入引數的型別和mapper.java的方法輸入 引數型別一致。
4、mapper.xml中statement的resultType指定輸出結果的型別和mapper.java的方法返回值型別一致。
SqlMapConfig.xml配置檔案:可以配置properties屬性、別名、mapper載入。。。
輸入對映:
parameterType:指定輸入引數型別可以簡單型別、pojo、hashmap。。
對於綜合查詢,建議parameterType使用包裝的pojo,有利於系統 擴充套件。
輸出對映:
resultType:
查詢到的列名和resultType指定的pojo的屬性名一致,才能對映成功。
reusltMap:
可以通過resultMap完成一些高階對映。
如果查詢到的列名和對映的pojo的屬性名不一致時,通過resultMap設定列名和屬性名之間的對應關係(對映關係)。可以完成對映。
高階對映:
將關聯查詢的列對映到一個pojo屬性中。(一對一)
將關聯查詢的列對映到一個List<pojo>中。(一對多)