Mybatis-plus不区分大小写
时间: 2023-09-28 10:07:50 浏览: 125
Mybatis-plus默认是区分大小写的,但是可以通过设置相关配置来实现不区分大小写的查询。
1. 在Mybatis-plus的配置文件中,添加如下配置:
```xml
<configuration>
<!-- 开启驼峰命名 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 自定义SQL注入器 -->
<global-config>
<sqlInjector type="com.baomidou.mybatisplus.core.injector.methods.LogicSqlInjector">
<property name="sqlParser" ref="mybatis-plus-sql-parser"/>
</sqlInjector>
</global-config>
<!-- 自定义SQL解析器 -->
<bean id="mybatis-plus-sql-parser" class="com.baomidou.mybatisplus.extension.parsers.JsqlParserCountOptimize">
<constructor-arg value="mysql"/>
</bean>
</configuration>
```
2. 在使用Mybatis-plus的Mapper时,使用Wrapper的LambdaQueryWrapper构造方法,并使用函数lower或upper将查询条件转为小写或大写,例如:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUsername, "admin").or().eq(User::getUsername, "ADMIN");
```
可以修改为:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUsername, "admin")
.or(wrapper -> wrapper.eq(User::getUsername, "ADMIN").or().eq(User::getUsername, "admin").or().eq(User::getUsername, "Admin"));
```
其中,通过函数lower将查询条件转为小写,再与小写的"admin"进行比较,这样就可以实现不区分大小写的查询。
阅读全文