今天就跟大家聊聊有關初學mybatis時需要注意這幾樣事項,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
什么是mybatis
MyBatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plan Old Java Objects,普通的Java對象)映射成數據庫中的記錄.
orm工具的基本思想
無論是用過的hibernate,mybatis,你都可以法相他們有一個共同點:
1. 從配置文件(通常是XML配置文件中)得到 sessionfactory.
2. 由sessionfactory 產生 session
3. 在session 中完成對數據的增刪改查和事務提交等.
4. 在用完之后關閉session 。
5. 在Java 對象和 數據庫之間有做mapping 的配置文件,也通常是xml 文件。
參數問題
在映射文件中通過parameterType指定輸入參數的類型;在映射文件中通過resultType指定輸出結果的類型。
占位符和拼接符問題
#{}表示一個占位符號,#{}接收輸入參數,類型可以是簡單類型,pojo、hashmap。
如果接收簡單類型,#{}中可以寫成value或其它名稱。
#{}接收pojo對象值,通過OGNL讀取對象中的屬性值,通過屬性.屬性.屬性...的方式獲取對象屬性值。
${}表示一個拼接符號,會引用sql注入,所以不建議使用${}。
${}接收輸入參數,類型可以是簡單類型,pojo、hashmap。
如果接收簡單類型,${}中只能寫成value。
${}接收pojo對象值,通過OGNL讀取對象中的屬性值,通過屬性.屬性.屬性...的方式獲取對象屬性值。
selectone和selectList
在我們通過sqlSession進行查詢的時候,可以選擇selectOne和選擇SelectList,這個時候,它們是有區別的。
selectOne表示查詢出一條記錄進行映射。如果使用selectOne可以實現使用selectList也可以實現(list中只有一個對象)。
selectList表示查詢出一個列表(多條記錄)進行映射。如果使用selectList查詢多條記錄,不能使用selectOne。
如果使用selectOne報錯:
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4
看完上述內容,你們對初學mybatis時需要注意這幾樣事項有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。