当前使用版本(必须填写清楚,否则不予处理)
3.2.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
问题出现代码定位: 该配置:缺少对达梦数据库的判断
com.baomidou.mybatisplus.generator.config.DataSourceConfig#getDbType(java.lang.String)
if (str.contains("mysql")) { return DbType.MYSQL; } else if (str.contains("oracle")) { return DbType.ORACLE; } else if (str.contains("postgresql")) { return DbType.POSTGRE_SQL; } else if (str.contains("sqlserver")) { return DbType.SQL_SERVER; } else if (str.contains("db2")) { return DbType.DB2; } else if (str.contains("mariadb")) { return DbType.MARIADB; } else if (str.contains("sqlite")) { return DbType.MARIADB; } else { return str.contains("h2") ? DbType.H2 : null; }
重现步骤
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:dm://localhost/SYSDBA?DMSERVER?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8");
// dsc.setSchemaName("public");
dsc.setDriverName("dm.jdbc.driver.DmDriver");
dsc.setUsername("SYSDBA");
dsc.setPassword("rootrootroot");
mpg.setDataSource(dsc);
报错信息
java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.baomidou.mybatisplus.generator.config.DataSourceConfig.getConn(DataSourceConfig.java:196)
at com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder.handlerDataSource(ConfigBuilder.java:269)
at com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder.
Comment From: qmdx
加上驱动
Comment From: qmdx
长时间未得到反馈
Comment From: xianlonglu
Exception in thread "main" com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Unknown type of database! 是不是不支持DM,金仓等国产数据库代码生成?