软件环境如下:
oracle19c 开启大小写敏感 springboot 2.3.12 + mybatis plus 3.5.1 oracle 驱动
<dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.19.0.0</version> </dependency> mapper 类
@Mapper public interface RolesMapper extends BaseMapper<Roles> { } 调用代码
rolesMapper.insert(new Roles(null, "11", "11", "11")); 报错信息
### SQL: INSERT INTO "roles" ( "Name", "State", "home_page" ) VALUES ( ?, ?, ? ) ### Cause: java.sql.SQLSyntaxErrorException: ORA-04043: 对象 "ROLES" 不存在 定位到的出错的代码位于 AutoKeyInfo 类的 getTableName 方法,这个是 oracle 驱动包里的
getTableName 方法传入 insert 查询的 SQL ,substring 分割出 table name , 但是传入的 SQL 莫名其妙执行了转大写操作
String var1 = this.originalSql.trim().toUpperCase(); 导致"roles"变成了"ROLES" 然后找不到表
请问这个东西是我配置问题,还是驱动的问题?
