iBATIS教程之like語句的寫法淺析
iBATIS教程之like語句的使用我們可以先看看網(wǎng)上搜了一下iBATIS的關(guān)于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﹥
這樣寫顯然不行
在調(diào)用中需要在參數(shù)的前后加上%,比如這樣:
- return sqlMapper.queryForList("Student.showOneStudentByName", "%"+name+"%");
這樣可行,但總顯得有些不協(xié)調(diào)。
最后針對Oracle數(shù)據(jù)庫寫法為:
- ﹤select id="showOneStudentByName" parameterClass="String" resultMap="studentORM"﹥
- select * from t_stu where s_name like '%'||#name#||'%'
- ﹤/select﹥
在調(diào)用的時候就不用去前后加%了。
注意:SQL語句不要寫成select * from t_stu where s_name like '%$name$%',這樣極易受到注入攻擊。
補(bǔ)充說明一下:
對于不同數(shù)據(jù)字符串連接符不一樣。列舉mysql和SQLServer如下:
Mysql:
- SELECT *
- FROM user
- WHERE username like CONCAT('%', #username#, '%')
SQLServer:
- SELECT *
- FROM user
- WHERE username like '%' + #username# + '%'
關(guān)于數(shù)據(jù)庫字符串連接符簡單列舉我使用過的一些數(shù)據(jù)庫如下圖:
iBATIS教程之like語句的使用就向你介紹到這里,希望對你有所幫助。