mybatis 设置不区分表名大小写
时间: 2023-05-03 22:07:48 浏览: 1359
在MyBatis中,可以通过以下方式来设置不区分表名大小写。
在 MyBatis 的配置文件(mybatis-config.xml)中添加以下代码:
```
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
```
这个配置项会开启驼峰命名法和下划线命名法的转换功能。例如,数据库表名为 user_info,Java 实体类名为 UserInfo。这时如果在 Mapper XML 文件中使用以下 SQL 查询语句:
```
select * from user_info
```
MyBatis 默认会把它转换为:
```
select * from user_info
```
也就是不区分表名大小写。
另外,如果需要让所有 Mapper 文件都遵循这个规则,可以在 mapper 接口类上加上 @MapperScan(“Mapper包名”)注解,表示扫描这个包下所有 Mapper 接口类。这时所有对应的 Mapper XML 文件就会遵循配置文件中的规则。例如:
```
@MapperScan("com.example.mapper")
public interface UserInfoMapper {
// 方法省略
}
```
相关问题
mybatis-plus区分大小写
MyBatis-Plus 默认情况下是不区分大小写的。这意味着在进行数据库操作时,不会区分表名、列名等的大小写。例如,对于表名为 "User",你可以在 MyBatis-Plus 中使用 "user"、"USER" 或者 "User" 均可进行操作。这种不区分大小写的行为是由底层数据库驱动所决定的。
如果你需要在 MyBatis-Plus 中进行区分大小写的操作,可以通过设置数据库的 collation(排序规则)来实现。在创建数据库时,可以选择支持区分大小写的排序规则,然后将相应的表和列声明为区分大小写的。这样,MyBatis-Plus 将会按照数据库设置来处理大小写。
需要注意的是,区分大小写可能会导致一些不便之处,比如查询时需要精确匹配表名和列名的大小写。因此,在选择是否区分大小写时,需要根据具体需求进行权衡。
mybatis逆向查询区分大小写
MyBatis 逆向查询(即使用 MyBatis Generator 自动生成的代码)默认情况下是不区分大小写的。但是,可以通过以下两种方式使其区分大小写:
1. 在 `table` 标签中添加 `delimitAllColumns="true"` 属性,如下所示:
```xml
<table tableName="my_table" delimitAllColumns="true" />
```
这样,MyBatis 生成的 SQL 语句中所有的表名、列名都会使用反引号括起来,从而区分大小写。
2. 在 `context` 标签中添加以下属性:
```xml
<context id="mysql" targetRuntime="MyBatis3">
<property name="autoDelimitKeywords" value="true"/>
</context>
```
这样,MyBatis Generator 生成的 Java 代码中所有的 SQL 语句都会使用双引号括起来,从而区分大小写。
需要注意的是,如果数据库本身不区分大小写,那么即使配置了区分大小写,也不会产生实际效果。因此,在进行逆向查询时,需要保证数据库本身支持大小写区分。