当前使用版本(必填,否则不予处理)
mybatisplus 3.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
https://github.com/baomidou/mybatis-plus/blob/fc839ddae3433c35dcb410138db8749f7c4fff21/mybatis-plus-generator/src/main/java/com/baomidou/mybatisplus/generator/config/builder/ConfigBuilder.java#L605
} else if (DbType.H2 == dbType) {
tableName = tableName.toUpperCase(); // 这里
try (PreparedStatement pkQueryStmt = connection.prepareStatement(String.format(H2Query.PK_QUERY_SQL, tableName));
ResultSet pkResults = pkQueryStmt.executeQuery()) {
while (pkResults.next()) {
String primaryKey = pkResults.getString(dbQuery.fieldKey());
if (Boolean.parseBoolean(primaryKey)) {
h2PkColumns.add(pkResults.getString(dbQuery.fieldName()));
}
}
}
tableFieldsSql = String.format(tableFieldsSql, tableName);
} else {
tableFieldsSql = String.format(tableFieldsSql, tableName);
}
重现步骤(如果有就写完整)
user.ddl.sql
drop table if exists user;
create table user
(
id bigint(20) auto_increment
comment '主键',
name varchar(50) not null
comment '用户名',
age smallint(4) not null
comment '年龄',
address varchar(500) null
comment '住址',
birthday datetime null
comment '生日',
gender tinyint(1) null
comment '0是女 1是男',
is_delete tinyint(1) default 0
comment '0正常 1已删',
primary key (id)
) engine = innodb comment '用户表'
default charset = utf8;
需要改成 user -> USER ,才能获取表结构信息。 建议不需要 tableName.toUpperCase();
报错信息
无。
Comment From: qmdx
https://github.com/baomidou/mybatis-plus/commit/210994fd53cab8c8d714b471c0aaa54f9e1381af