![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis
齐天qaq
生活给我一颗酸柠檬,我把它酿成了柠檬汽水。
展开
-
MyBatis处理LIKE查询时,如何将传值中包含下划线_和百分号%等特殊字符处理成普通字符而不是SQL的单字符通配符
在XML配置的MyBatis中处理LIKE查询时,如果前端传递的值中包含了下划线_,并且你想要这个下划线被视为普通字符而不是SQL的单字符通配符,你需要在MyBatis的XML映射文件中对这个字符进行转义。在这个例子中,REPLACE(#{pattern}, '_', '\\_')函数将传入的参数中的所有下划线_替换为转义后的下划线\\_。如果这种字符不经过处理,并且你的模糊查询sql语句书写如下,那么在你的前端页面搜索框中输入下划线或者百分号时候,搜索到的数据就是全量数据,未达到我们的预期。原创 2024-01-18 12:02:54 · 1060 阅读 · 0 评论 -
@Mapper 和 @MapperScan
Mapper是mybatis自身带的注解。在spring程序中,mybatis需要找到对应的mapper,在编译时生成动态代理类,与数据库进行交互,这时需要用到@Mapper注解。但是当有很多mapper接口时,就需要写很多@Mapper注解,这样很麻烦,有一种简便的配置化方法便是在启动类上使用@MapperScan注解。指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。在Springboot启动类上面添加该注解。原创 2023-11-16 11:47:28 · 130 阅读 · 0 评论 -
Mybatis使用动态sql时,注意避免以下两个坑!!!
当status的值为0的时候,where条件中的sql未正常拼接,即if test中的条件不成立(false),导致查询结果异常,显然Integer status = 0, 0!这样写由于单引号内,如果是单个字符的话,OGNL将会识别为java的char类型,而导致str的string类型与char类型做==运算会返回false,导致表达式不成立。:mybatis在预编译sql时,使用OGNL表达式来解析if标签,对于Integer类型属性,在判断不等于' '时,会返回' '的长度。原创 2023-07-05 10:00:40 · 258 阅读 · 0 评论