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


iBATIS教程之like語句的使用我們可以先看看網上搜了一下iBATIS的關於like的使用

  1. select * from USERS where USER_NAME like '%wang%'

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

  1. ﹤select id="showOneStudentByName" parameterClass="String" resultMap="studentORM﹥" 
  2. select * from t_stu where s_name like #name#  
  3. ﹤/select﹥ 

這樣寫顯然不行

在調用中需要在參數的前后加上%,比如這樣:

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

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

最后針對Oracle數據庫寫法為:

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

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

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

補充說明一下:

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

Mysql: 

  1. SELECT *   
  2.  
  3. FROM user   
  4.  
  5. WHERE username like CONCAT('%', #username#, '%')  

SQLServer:

  1. SELECT *   
  2.  
  3. FROM user   
  4.  
  5. WHERE username like '%' + #username# +  '%'  

關於數據庫字符串連接符簡單列舉我使用過的一些數據庫如下圖:

數據庫字符串連接符 

iBATIS教程之like語句的使用就向你介紹到這里,希望對你有所幫助。

原文:http://developer.51cto.com/art/200907/138302.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM