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# + '%'