mybatis 模糊查询特殊字符的处理

/**
* 把模糊查询的检索的关键字对特殊字符进行转换如“[”、“%”
* @param str
* 需要转换的字符串
* @return 返回模糊查询的字符串
*/
public static String ToLikeStr(String str)
{
if(str != null && str.length()>0)
{
str =str.trim().replace("\\", "\\\\%").replace("%", "\\%").replace("_", "\\_");
}
return str ;
// str =
}

字段即你想那个转换:
typicalCase.setTrade_code(DesUtil.ToLikeStr(typicalCase.getTrade_code()));

mybatis 配置:

<isNotEmpty prepend="and" property="trade_code">
trade_code like ‘%‘ || #trade_code# || ‘%‘ escape ‘\‘
</isNotEmpty>

时间: 2024-08-29 17:44:37

mybatis 模糊查询特殊字符的处理的相关文章

MyBatis模糊查询like

MyBatis模糊查询like的两种使用方法 初次使用MyBatis持久层框架,进行模糊查询如like时,如果传入的map类型的参数,可以使用${}, 如果传入的不是map类型的参数, 不知道如何处理.经过研究想到了两种方法(我使用的是MySQL数据库), 如where name like concat(concat(‘%’#{name}),’%’)或者where name like “%”#{name}“%“注意:后一种方法”%”是双引号,而不是单引号 where bo.name like c

mysql模糊查询特殊字符(\,%和_)处理

/** * sql模糊查询特殊字符(\,%和_)处理 * * @param string $str * @return string */ public static function like_search_specialchars($str){ return str_replace(array('\\', '%', '_'), array('\\\\', '\\%', '\\_'), $str); }

MyBatis模糊查询相关

Mybatis模糊查询的实现不难,如下实例:在UserMapper.xml中根据用户名模糊查询用户: <!-- 模糊查询用户 --> <select id="findSomeUser" resultMap="userResultMap" parameterType="java.lang.String"> SELECT * FROM user WHERE username LIKE CONCAT('%',#{value},'

MyBatis模糊查询异常: &#39;%${}&#39;&#39;读取jdbc属性

'%${}''不能传参,总是固定为root, 后来发现${username}是读取了jdbc里面的属性username,于是将jdbc属性名修改于是成功 MyBatis模糊查询异常: '%${}''读取jdbc属性 原文地址:https://www.cnblogs.com/ltfxy/p/10409883.html

MyBatis模糊查询和多条件查询

MyBatis模糊查询和多条件查询 一.ISmbmsUserDao层 //根据姓名模糊查询 public List<Smbms> getUser(); //多条件查询 public List<Smbms> getLikeUser(@Param("userName") String userName , @Param("userCode") String userCode ); 二.小配置文件 ISmbmsUserDao.xml <!--

Mybatis模糊查询MySQL中记录的的常用三种方法

mybatis的模糊查询功能使用的很广泛,以MySQL数据库为例(不同的数据库,有些可能不支持) 常用的模糊查询有三种方法: 直接使用 % 拼接字符串,如 '%'#{name}'%' 或 "%"#{name}"%",单引号或双引号都可以. 使用concat(str1,str2)函数拼接 使用mybatis的bind标签 现在有数据库mybatis1中表users中有如下记录: User [id=2, name=bb, phone=13422222222, [emai

mybatis模糊查询sql

今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句, 但是这个有问题,只有将字段的全部值传入其中,才能查询,所以不是迷糊查询. 后来经过搜索,发现要加上一个concat字段,要先将字符串拼接后,才能实现模糊查询. 改成这个样子后,模糊查询功能实现. 在我搜索到的博客中海油别的几种写法,但是试验了两个,有一个成功,另外一个没能实现模糊查询,但是目前还不知道错误在哪里.如果有人知道,请赐教. 他的博客地址是:http://blog.sina

mybatis模糊查询(转载)

原文地址:http://blog.csdn.net/luqin1988/article/details/7865643 模糊查询: 工作中用到,写三种用法吧,第四种为大小写匹配查询 1. sql中字符串拼接 SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%'); 2. 使用 ${...} 代替 #{...} SELECT * FROM tableName WHERE name LIKE '%${text

mybatis 模糊查询 like的三种方式

第一种 public void selectBykeyWord(String keyword) { String id = "%" + keyword + "%"; String roleType = "%" + keyword + "%"; String roleName = "%" + keyword + "%"; userDao.selectBykeyWord(id,roleNam