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# + '%'
關於數據庫字符串連接符簡單列舉我使用過的一些數據庫如下圖:
iBATIS教程之like語句的使用就向你介紹到這里,希望對你有所幫助。