什么是mybatis
MyBatis是支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plan Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄.
orm工具的基本思想
無(wú)論是用過的hibernate,mybatis,你都可以法相他們有一個(gè)共同點(diǎn):
1. 從配置文件(通常是XML配置文件中)得到 sessionfactory.
2. 由sessionfactory 產(chǎn)生 session
3. 在session 中完成對(duì)數(shù)據(jù)的增刪改查和事務(wù)提交等.
4. 在用完之后關(guān)閉session 。
5. 在Java 對(duì)象和 數(shù)據(jù)庫(kù)之間有做mapping 的配置文件,也通常是xml 文件。
參數(shù)問題
在映射文件中通過parameterType指定輸入?yún)?shù)的類型;在映射文件中通過resultType指定輸出結(jié)果的類型。
占位符和拼接符問題
#{}表示一個(gè)占位符號(hào),#{}接收輸入?yún)?shù),類型可以是簡(jiǎn)單類型,pojo、hashmap。
如果接收簡(jiǎn)單類型,#{}中可以寫成value或其它名稱。
#{}接收pojo對(duì)象值,通過OGNL讀取對(duì)象中的屬性值,通過屬性.屬性.屬性...的方式獲取對(duì)象屬性值。
${}表示一個(gè)拼接符號(hào),會(huì)引用sql注入,所以不建議使用${}。
${}接收輸入?yún)?shù),類型可以是簡(jiǎn)單類型,pojo、hashmap。
如果接收簡(jiǎn)單類型,${}中只能寫成value。
${}接收pojo對(duì)象值,通過OGNL讀取對(duì)象中的屬性值,通過屬性.屬性.屬性...的方式獲取對(duì)象屬性值。
selectone和selectList
在我們通過sqlSession進(jìn)行查詢的時(shí)候,可以選擇selectOne和選擇SelectList,這個(gè)時(shí)候,它們是有區(qū)別的。
selectOne表示查詢出一條記錄進(jìn)行映射。如果使用selectOne可以實(shí)現(xiàn)使用selectList也可以實(shí)現(xiàn)(list中只有一個(gè)對(duì)象)。
selectList表示查詢出一個(gè)列表(多條記錄)進(jìn)行映射。如果使用selectList查詢多條記錄,不能使用selectOne。
如果使用selectOne報(bào)錯(cuò):
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 4
以上所述是小編給大家介紹的mybatis快速入門學(xué)習(xí)教程新手注意問題小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://www.cnblogs.com/liyasong/archive/2017/02/10/6387004.html