mybatis plus 里面怎么不区分大小写
时间: 2025-01-06 15:44:21 浏览: 12
在MyBatis Plus中,默认情况下,列名(包括表名、字段名等)是区分大小写的。如果你希望不区分大小写地匹配列名,可以设置一些全局配置。
1. 配置文件(application.yml 或 application.properties)中添加如下内容:
对于YAML:
```
mybatis-plus:
global-config:
dbColumnUnderline: true # 将数据库列名转为下划线命名法,同时忽略大小写
```
对于properties:
```
mybatis-plus.global-config.dbColumnUnderline=true
```
`dbColumnUnderline` 参数设置为 `true` 后,MyBatis Plus会自动将查询条件中的列名转换为小写或大写形式进行匹配,从而达到不区分大小写的查询效果。
2. 如果你想对特定的实体类启用这个特性,可以在实体类上标注 `@Table(name = "your_table", databaseId = DatabaseId.ID_CAMEL)` 并设置 `databaseId` 为 `DatabaseId.ID_CAMEL`,这会使该类下的字段名称也采用驼峰式命名并忽略大小写。
记得重启服务或者刷新缓存,让配置生效。
相关问题
Mybatis-plus不区分大小写
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"进行比较,这样就可以实现不区分大小写的查询。
mybatis-plus LambdaQueryWrapper不区分大小写写法
以下是使用mybatis-plus LambdaQueryWrapper进行不区分大小写查询的方法:
```java
LambdaQueryWrapper<NewsEntity> lambdaQuery = Wrappers.lambdaQuery();
lambdaQuery.like(true, NewsEntity::getTitle, entity.getTitle());
```
这段代码中,`like`方法的第一个参数设置为`true`,表示进行不区分大小写的查询,第二个参数指定了要查询的字段,第三个参数是查询的条件。
阅读全文