當前位置:
首頁 > 知識 > 框架學習系列 mybatis 第六篇 入門程序之插入數據1

框架學習系列 mybatis 第六篇 入門程序之插入數據1

本節主要內容

1:根據上節課中提出的需求完成:向資料庫中插入數據

2:測試代碼實現

3:總結&下節預告

本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中第6篇 mybatis入門程序之需求開發3向資料庫中插入數據1

聲明:本文系凱哥原創。轉載請註明出處

一:資料庫插入數據

1.1:先寫sql插入資料庫

全參數插入:

說明:資料庫中user表中有五個欄位。所以需要五個參數。

在看錶結構:

我們可以看到,主鍵id是自增長類型的。所以在插入的時候可以不進行插入。

修改後的sql語句:

1.2:在mybatis中怎麼寫呢?

思考:

1:直接把sql語句放置到對應的mapper.xml文件中嗎?那麼參數怎麼獲取?

2:傳遞的參數又是什麼?

分析:

1:通過前面學習我們知道#{}相當於是?起佔位符作用

而${}是連接符的作用(相當於是java中加號(+)連接作用)

通過sql語句,我們看到了參數值是四個?。所以這裡使用#{}獲取值。

2:parameterType是對應的pojo對象就可以。

在獲取的時候,#中的屬性就是pojo對象中屬性即可。

這種是通過OGNL表達式獲取的。

說明:

1:通過OGNL表達式到user對象中獲取對應的屬性值

2:#中的屬性名稱必須和user對象中的屬性名稱一致

二:測試代碼

2.1:如下圖:

說明:

1:插入數據的時候使用的是sqlsession的insert方法

2:第一個參數依然是sql語句唯一標識符

3:參數二是sql語句需要的參數。在這裡我們需要的是user這個對象

2.2:使用unit測試

綠色的說明成。

查看列印的sql語句:

說明:

1:Preparing 是執行的sql語句

2:Parameters 是執行sql需要的參數列表。按照?的順序的。

我們發現,明明傳遞的是user對象,這這裡列印出的參數不是user對象,而是我們給user對應屬性設置的值。這就是OGNL表達式做的。

3:Updates 是執行該條sql語句所影響的行數

查詢資料庫:

發現資料庫中並沒有數據啊。這是為什麼呢?

因為沒有提交事務。所以,數據就沒有入庫。

在代碼中添加事務:

重新查詢資料庫:

上面是手動提交事務的。

在創建獲取sqlsession對象的時候,還可以設置為自動提交事務:

就是在openSession的時候傳遞一個boolean類型的參數。

我們可以查看源碼:

發現源碼中會自動commit()的。

三:總結&下節預告

通過本文學習我們需要掌握的

1:在保存數據的時候,如果通過一個對象來保存

2:需要注意的是,在提交的時候需要事務。

如果是自動提交,在執行完insert方法後可以不再手動提交了

如果非自動提交事務,那麼在執行完insert方法後必須手動提交(commit),數據才會入庫的。

下節預告:

在電商項目中,比如下單需要涉及到多張表。如訂單表、訂單明細表、聯繫人(收貨地址、聯繫人、手機號等)表三張表。在訂單明細表和訂單表是關聯的。在訂單明細表中,需要有訂單表的主鍵id.

也就是說,在訂單表數據插入完資料庫後,就需要將這條數據的id作為參數插入到訂單明細表中。

注意這些操作在同一個事務中,怎麼操作才能實現這個功能呢?

歡迎學習下一篇《框架學習系列 mybatis 第7篇 mybatis入門程序之插入資料庫後返回主鍵》

本系列其他文章:

框架學習系列 mybatis第五篇入門程序根據用戶名模糊查詢

框架學習系列 mybatis 第四篇 入門程序之需求開發1

框架學習系列 mybatis 第三篇入門程序之工程項目的搭建

框架學習系列 mybatis第二篇 mybatis的工作原理

框架學習系列 mybatis 第一篇 原生jdbc連接分析

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

框架學習系列 mybatis 第四篇 入門程序之需求開發1
框架學習系列 mybatis第五篇入門程序根據用戶名模糊查詢
框架學習系列 mybatis第二篇 mybatis的工作原理
框架學習系列 mybatis 第三篇入門程序之工程項目的搭建
老爺子,您這活到老學到老,這讓年輕的我們情何以堪?

TAG:凱哥java |

您可能感興趣

Spring Boot入門:第一個Spring Boot程序
新版Notepad plus plus移除程序代碼數字簽名
程序媛筆記分享——python模塊之subprocess模塊
Ferragamo->小程序入口
編程菜鳥之怎樣用Bootstrap前端框架結合ThinkPHP框架做程序設計
程序員探案之 Python和Redis 的「第三者」
第三方Windows 10音量控制應用程序EarTrumpet發布
Encryption 101系列:解密程序的設計思路
QuestMobile數據:小程序日活用戶突破了2億
Google發布基於AI的學習程序Socratic
開獎+小程序抽籤丨 Air Jordan 1「No L』s」系列「Varsity Red」配色
Stack Overflow十萬程序員大調查:最想學Python,93%是「直的」
Google Fuchsia操作系統可執行Android程序
Python入門篇-利用注釋和main函數用法做一個計算器程序
Linux操作系統之Shell程序設計
Web Security事件發酵,Mozilla移除23個可疑插件程序
Web入門程序——三層架構
蘋果正式啟動12英寸MacBook和MacBook Pro鍵盤修復程序
Android銀行木馬——Red Alert 2.0偽裝成合法程序進行傳播
開獎+小程序抽籤丨Nigel Sylvester x Air Jordan 1