ibatis里面sql语句中条件使用like的写法
2013-03-04 14:23
337 查看
大家都熟悉sql语句中带条件查询的写法,比如:
这种like语句在ibatis中怎么写?是像下面这样吗:
这样写显然不行,在调用中需要在参数的前后加上%,比如这样:
return sqlMapper.queryForList("User.getUserByName", "%"+name+"%");
这样可行,但总显得有些不协调。 像这种与sql相关的操作符,还是写在sql中比较妥当。
最后针对oracle数据库写法为:
<select id="getUserByName" parameterClass="String" resultMap="userMap">
select * from USERS where USER_NAME like '%'||#name#||'%'
</select>
在调用的时候就不用去前后加%了。
写到这里,大家可能会想到#与$用法的区别,因此可以写成select * from USERS where USERNAME like '%$name$%'
但是请注意:sql语句不要写成,这样极易受到注入攻击。
补充说明一下:
对于不同数据字符串连接符不一样。列举mysql和SQLServer如下:
Mysql:
-----------------------------------------------------------------------------------------------------------------------------
SQLServer:
select * from USERS where USER_NAME like '%davidchou%';
这种like语句在ibatis中怎么写?是像下面这样吗:
<select id="getUserByName" parameterClass="String" resultMap="userMap"> select * from USERS where USER_NAME like #name# </select>
这样写显然不行,在调用中需要在参数的前后加上%,比如这样:
return sqlMapper.queryForList("User.getUserByName", "%"+name+"%");
这样可行,但总显得有些不协调。 像这种与sql相关的操作符,还是写在sql中比较妥当。
最后针对oracle数据库写法为:
<select id="getUserByName" parameterClass="String" resultMap="userMap">
select * from USERS where USER_NAME like '%'||#name#||'%'
</select>
在调用的时候就不用去前后加%了。
写到这里,大家可能会想到#与$用法的区别,因此可以写成select * from USERS where USERNAME like '%$name$%'
但是请注意:sql语句不要写成,这样极易受到注入攻击。
补充说明一下:
对于不同数据字符串连接符不一样。列举mysql和SQLServer如下:
Mysql:
SELECT * FROM USERS WHERE USER_NAME like CONCAT('%', #username#, '%')
-----------------------------------------------------------------------------------------------------------------------------
SQLServer:
SELECT * FROM USERS WHERE USER_NAME like '%' + #username# + '%'
相关文章推荐
- sql 语句 like 多个条件的写法
- sql语句中条件查询like的效率,及使用规范.
- sql语句like多个条件的写法实例
- sql语句like多个条件的写法实例
- sql语句like多个条件的写法实例
- SQL:如何在LIKE语句中使用参数,以及动态执行SQL语句
- ACCESS中SQL语句之“like” 语句写法
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件
- SQL中like语句通配符、转义符与括号的使用
- 使用 P6Spy 来格式化 SQL 语句,支持 Hibernate 和 iBATIS
- 使用sp_executesql执行动态SQL语句,同时向里面传入参数。
- C#使用带like的sql语句时防sql注入的方法
- 同一字段根据不同条件更新的sql语句的写法
- 开发中多条件搜索是使用StringBuilder创建sql语句
- 分区使用本地索引时,SQL注意条件写法
- sql语句中like的使用
- SQL中代替Like语句的另一种写法
- 教您如何使用SQL中的SELECT LIKE like语句
- 多条件搜索使用带参数的sql语句