1. 程式人生 > >一 Mybatis概述&與Hibernate的區別&CRUD

一 Mybatis概述&與Hibernate的區別&CRUD

nbsp 部分 修改用戶 返回 普通 映射 編寫 set方法 輸出

Mybatis是類似Hibernate的ORM持久層框架

為什麽學習Mybatis?

1 是目前國內主流的持久層框架,面向sql(相較於Hibernate,Mybatis一定要用sql)

2 Hibernate學習門檻不低,要精通門檻更高(在於如何設計O/R映射,性能和對象模型之間取得平衡,怎樣用好Hibernate緩存與數據加載策略)

3 sql優化方面,Hibernate的查詢會將表中的所有字段查詢出來,會有性能消耗。如果自己寫sql語句進行查詢,則破壞了Hibernate開發的簡潔性。

如果有個查詢要關聯多張表,比如5張表,10張表,而我們只取其中幾張表的部分字段,這時用Hibernate就會顯得非常力不從心,後續維護也令人發狂。

JDBC存在的問題

1 頻繁的創建和打開,關閉數據庫,太消耗資源

2 sql語句存在硬編碼,不利於維護

3 sql參數設置硬編碼,不利於維護

4 結果集獲取與遍歷復雜,存在硬編碼,不利於維護,期望能夠查詢後返回一個java對象

Mybatis介紹:

Mybatis本是Apache的一個開源項目iBatis.是面向sql的持久層框架,對jdbc進行了封裝。

開發中,可以只專註於sql語句本身的拼裝,其他復雜過程交給MyBatis完成

MyBatis入門:

  • 根據用戶ID查詢用戶信息
  • 根據用戶名查找用戶列表
  • 添加用戶
  • 修改用戶
  • 刪除用戶

工程搭建:

  1. 導入依賴jar包
  2. 配置SqlMapConfig.xml
  3. 配置log4j.properties
  4. pojo
  5. 配置sql查詢映射文件
  6. 加載映射文件

包結構:config為Source文件,與src相同

技術分享圖片

導入依賴jar包

技術分享圖片

配置SqlMapConfig.xml映射文件,映射加載:項目名/文件名 , 默認在config文件下,mybatis包下加載

技術分享圖片

配置log4j.properties,輸出到控制臺

技術分享圖片

pojo:與Hibernate的domain相同,提供屬性的getset方法

配置sql查詢映射文件 user.xml , namesapce:命名空間, select id 等 見下圖

技術分享圖片

根據用戶ID查詢用戶信息:

  1. 編寫sql語句
  2. 配置關系映射
  3. 單元測試

技術分享圖片

根據用戶名查找用戶列表

  1. 編寫sql語句
  2. 配置關系映射
  3. 單元測試

方式一:手動在sql語句裏面設置查詢,#{name}

方式二:直接在user.xml中設置,${}是字符串拼接指令,如果入參為普通數據類型,括號內只能寫value

一:

映射:

技術分享圖片

單元測試:

技術分享圖片

二:${}是字符串拼接指令,如果入參為普通數據類型,括號內只能寫value

技術分享圖片

單元測試:

技術分享圖片

添加用戶

映射:

技術分享圖片

單元測試:如果不想手動提交事務,設置openSession(true)

技術分享圖片

一 Mybatis概述&與Hibernate的區別&CRUD