mybatis generator逆向工程生成bean和mapper的时候发生异常: Exception getting JDBC Drive

具体异常如下java.lang.RuntimeException: Exception getting JDBC Drive

mybatis generator .xml的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
	
		
  <context id="DB2Tables" targetRuntime="MyBatis3">
  
  	<!-- 配置数据库连接 -->
    <jdbcConnection 
    	driverClass="com.mysql.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/ssm_crud"
        userId="root"
        password="root123">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

	<!-- 指定javaBean生成的位置 -->
    <javaModelGenerator 
    	targetPackage="com.atguigu.crud.bean" 
    	targetProject=".\src\main\java">
      <property name="enableSubPackages" value="true" />
      <property name="trimStrings" value="true" />
    </javaModelGenerator>

	<!-- 指定sql映射文件(sqlMap)生成位置 -->
    <sqlMapGenerator 
    	targetPackage="mapper"  
    	targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

	<!-- 指定dao接口(sqlMap接口)生成的位置 -->
    <javaClientGenerator type="XMLMAPPER" 
    	targetPackage="com.atguigu.crud.dao"  
    	targetProject=".\src\main\resources">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

	<!-- 指定每个表的生成策略 -->
    <table tableName="tbl_emp" domainObjectName="Employee"/>
    <table tableName="tbl_dept" domainObjectName="Department"/>

  </context>
</generatorConfiguration>

与mybatis generator的xml相配合逆向生成的java代码如下:

package com.atguigu.crud.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;


public class MBGTest {
	
	public static void main(String[] args) throws Exception{
		List<String> warnings = new ArrayList<String>();
		boolean overwrite = true;
		File configFile = new File("mbg.xml");
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(configFile);
		DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
		myBatisGenerator.generate(null);
	}
	
}

    在网上查了许多该类异常,但是测试之下都不能解决如上问题。再次仔细寻找代码之后发现maven插件中的settings配置有误。在settings中有如下两个配置:

<localRepository>C:\Users\lenovo\RepMaven</localRepository>

<mirror>
		<!--This sends everything else to /public -->
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
		<mirrorOf>central</mirrorOf>
	</mirror>
这样以上两者同事配置会导致冲突问题,当注释掉第一种配置后,再次尝试逆向生成测试果然成功了!

猜你喜欢

转载自blog.csdn.net/weixin_40136018/article/details/79452670
今日推荐