iBATIS教程之like語句的寫法淺析

iBATIS教程之like語句的寫法到底是怎麼樣子的呢?網上有很多的例子,那麼本文將會介紹一些在實際中用到的iBATIS中like語句的寫法的一點體會。

iBATIS教程之like語句的使用我們可以先看看網上搜了一下iBATIS的關於like的使用
select * from USERS where USER_NAME like '%wang%'; 

這種like語句在iBATIS中怎麼寫,項目是用iBATIS作爲持久層的框架。

﹤select id="showOneStudentByName" parameterClass="String" resultMap="studentORM﹥" 
select * from t_stu where s_name like #name#  
﹤/select﹥ 
這樣寫顯然不行,在調用中需要在參數的前後加上%,比如這樣:

return sqlMapper.queryForList("Student.showOneStudentByName", "%"+name+"%");

這樣可行,但總顯得有些不協調

最後針對Oracle數據庫寫法爲:

﹤select id="showOneStudentByName" parameterClass="String" resultMap="studentORM"﹥  
select * from t_stu where s_name like '%'||#name#||'%'   
﹤/select﹥  

在調用的時候就不用去前後加%了。

注意:SQL語句不要寫成select * from t_stu where s_name like '%$name$%',這樣極易受到注入攻擊。


補充說明一下:

對於不同數據字符串 連接符不一樣。列舉mysql和SQLServer如下:

Mysql: 
SELECT *   FROM user    
WHERE username like CONCAT('%', #username#, '%')  


SQLServer:
SELECT *   FROM user   

WHERE username like '%' + #username# +  '%'  

發佈了40 篇原創文章 · 獲贊 6 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章