mybatis-plus区分大小写
时间: 2023-09-25 17:12:44 浏览: 69
MyBatis-Plus 默认情况下是不区分大小写的。这意味着在进行数据库操作时,不会区分表名、列名等的大小写。例如,对于表名为 "User",你可以在 MyBatis-Plus 中使用 "user"、"USER" 或者 "User" 均可进行操作。这种不区分大小写的行为是由底层数据库驱动所决定的。
如果你需要在 MyBatis-Plus 中进行区分大小写的操作,可以通过设置数据库的 collation(排序规则)来实现。在创建数据库时,可以选择支持区分大小写的排序规则,然后将相应的表和列声明为区分大小写的。这样,MyBatis-Plus 将会按照数据库设置来处理大小写。
需要注意的是,区分大小写可能会导致一些不便之处,比如查询时需要精确匹配表名和列名的大小写。因此,在选择是否区分大小写时,需要根据具体需求进行权衡。
相关问题
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`,表示进行不区分大小写的查询,第二个参数指定了要查询的字段,第三个参数是查询的条件。