中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用MyBatis怎么實現一個帶參查詢功能

發布時間:2020-11-21 14:45:41 來源:億速云 閱讀:214 作者:Leah 欄目:開發技術

這篇文章給大家介紹使用MyBatis怎么實現一個帶參查詢功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

#{}占位符

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

select username,age,password from 'tb_user'

簡單類型參數

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

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

<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);

對象類型參數傳遞

當參數是對象類型時,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進行操作的方式, 會直接將傳遞的參數和SQL語句進行字符串的拼接。 一般當SQL語句結構不確定時使用。
當表名不確定,條件不確定,排序規則不確定的時候,不能使用#{},應該換做${}。對于簡單數據類型,應盡量使用#{},避免錯誤。
${}需要加''傳入的參數才能變成字符串,不然會被當成列名。

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

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

關于使用MyBatis怎么實現一個帶參查詢功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠来县| 牙克石市| 平武县| 吉木萨尔县| 龙江县| 黄浦区| 页游| 玉门市| 砚山县| 武汉市| 乌拉特前旗| 哈密市| 孟州市| 奇台县| 婺源县| 南华县| 双城市| 鹤岗市| 阿鲁科尔沁旗| 津南区| 讷河市| 汕尾市| 楚雄市| 吴堡县| 靖边县| 壤塘县| 合江县| 阳朔县| 泰安市| 大同县| 柏乡县| 华宁县| 佛山市| 石家庄市| 新平| 龙陵县| 西乌珠穆沁旗| 诏安县| 同德县| 万年县| 海原县|