最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis帶參查詢的方法詳解

 更新時間:2020年11月20日 15:07:13   作者:基礎不牢,地動山搖  
這篇文章主要介紹了MyBatis帶參查詢的方法詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

#{}占位符

類似于jdbc中通過PreparedStatement進行操作的方式, 會將sql語句中需要參數(shù)的位置使用?進行占位,后續(xù)由傳進來的參數(shù)進行參數(shù)的綁定。?處綁定的都是值,不能指定表的列,轉換成sql時表名會被當成字符串,會出錯,防止sql注入。

select username,age,password from 'tb_user'

簡單類型參數(shù)

簡單類型指的是: 基本數(shù)據(jù)類型, 包裝類型, String, java.sql.*。當參數(shù)是簡單類型時, MyBatis會忽略SQL語句中參數(shù)的個數(shù)和占位符的名稱, 然后將參數(shù)進行自動綁定. parameterType屬性可以定義參數(shù)的類型, 如果定義, 傳參時要求參數(shù)類型必須和指定的類型一致, 否則拋出ClassCastException。

<select id="selBaseType" resultType="pojo.User" parameterType="java.lang.Integer">
 select * from tb_users where id=#{id}
</select>
User user=sqlSession.selectOne("selBaseType",1);

Map類型參數(shù)

當參數(shù)是Map集合時, SQL語句中的#{}里應該寫Map集合的key值,MyBatis會通過key只找到value然后進行參數(shù)綁定。如果key不存在, 不會報錯,會使用null進行參數(shù)綁定。

<select id="selByMap" resultType="pojo.User">
 select * from tb_users where username=#{username} and password=#{password}
</select>
Map<String,String> map=new HashMap<>();
map.put("username","zhangsan");
map.put("password","123456");
User user=sqlSession.selectOne("selByMap",map);

對象類型參數(shù)傳遞

當參數(shù)是對象類型時,SQL語句中的#{}里應該寫對象的getter方法對應的屬性名。當getter方法不存在時, 拋出異常。

<select id="selByObject" resultType="pojo.User">
 select * from tb_users where username=#{username} and password=#{password}
</select>
User user1=new User();
user1.setUsername("lisi");
user1.setPassword("123456");
User user=sqlSession.selectOne("selByObject",user1);

${}

類似于jdbc中通過Statement進行操作的方式, 會直接將傳遞的參數(shù)和SQL語句進行字符串的拼接。 一般當SQL語句結構不確定時使用。
當表名不確定,條件不確定,排序規(guī)則不確定的時候,不能使用#{},應該換做${}。對于簡單數(shù)據(jù)類型,應盡量使用#{},避免錯誤。
${}需要加''傳入的參數(shù)才能變成字符串,不然會被當成列名。

select * from tb_users where username='${username}' and password='${password}'

如果${123}會當成整型數(shù)字替換占位,此時傳入的參數(shù)無效。

到此這篇關于MyBatis帶參查詢的文章就介紹到這了,更多相關MyBatis帶參查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

浑源县| 莆田市| 萨迦县| 乐清市| 诸暨市| 洮南市| 五常市| 江源县| 思南县| 綦江县| 盱眙县| 万宁市| 白城市| 民权县| 安平县| 新邵县| 称多县| 交城县| 高碑店市| 县级市| 嘉荫县| 三亚市| 尖扎县| 定西市| 精河县| 古丈县| 织金县| 淅川县| 抚顺县| 安国市| 巫溪县| 荆州市| 泰兴市| 碌曲县| 汝阳县| 凤城市| 玛沁县| 桦川县| 麟游县| 麻江县| 衢州市|