当前使用版本(必填,否则不予处理)
3.5.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
连接 starRocks 数据库,使用 FastAutoGenerator 生成代码
重现步骤(如果有就写完整)
连接 starRocks 数据库,使用了 SQLQuery.class
// 创建一个代码生成器 FastAutoGenerator.create(databaseUrl, username, password) .dataSourceConfig( builder -> { builder.databaseQueryClass(SQLQuery.class) ; } )
报错信息
09:44:24.678 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show table status WHERE 1=1
09:45:28.323 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 返回记录数:139,耗时(ms):63646
09:45:28.362 [main] DEBUG com.baomidou.mybatisplus.generator.config.querys.MySqlQuery - 执行SQL:show full columns from USERS
Exception in thread "main" java.lang.RuntimeException: 无法创建文件,请检查配置信息!
at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.batchOutput(AbstractTemplateEngine.java:256)
at com.baomidou.mybatisplus.generator.AutoGenerator.execute(AutoGenerator.java:179)
at com.baomidou.mybatisplus.generator.FastAutoGenerator.execute(FastAutoGenerator.java:229)
at MyBatisGeneratorForMySql.main(MyBatisGeneratorForMySql.java:129)
Caused by: java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: Unknown table 'TEST.USERS'
at com.baomidou.mybatisplus.generator.query.SQLQuery.convertTableFields(SQLQuery.java:139)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at com.baomidou.mybatisplus.generator.query.SQLQuery.queryTables(SQLQuery.java:85)
at com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder.getTableInfoList(ConfigBuilder.java:152)
at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.batchOutput(AbstractTemplateEngine.java:237)
... 3 more
Caused by: java.sql.SQLSyntaxErrorException: Unknown table 'TEST.USERS'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:972)
at com.baomidou.mybatisplus.generator.config.querys.DbQueryDecorator.execute(DbQueryDecorator.java:194)
at com.baomidou.mybatisplus.generator.query.SQLQuery.convertTableFields(SQLQuery.java:111)
... 7 more
Comment From: nieqiurong
这数据库是完全兼容mysql?或者试试用默认的元数据查询把,把builder.databaseQueryClass(SQLQuery.class)这个注释掉.
Comment From: qmdx
使用新版本,尝试使用 DefaultQuery 方式,如果不行建议自定义 DbQuery 然后 PR 感谢支持