spring boot整合mybatis-generator的填坑之路

第一步:
在pom.xml文件中添加:

<plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>
                        ${basedir}/src/main/resources/generator/mybatis_generator.xml
                    </configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
            </plugin>
            <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
            <scope>compile</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>1.2.4</version>
        </dependency>

第二步:
在resources文件夹下新建文件夹:generator。然后新建命名为: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" defaultModelType="flat">
        <property name="suppressDate" value="`"/>
        <!-- 是否去除自动生成的注释 true:是 : false:否 -->
        <property name="suppressAllComments" value="`"/>


        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.xxx.xxx.util.MyMapper"/>
        </plugin>

        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://xxxxxx?"
                        userId="xxx"
                        password="xxx">
        </jdbcConnection>

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

        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.xxx.xxx.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.xxx.xxx.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="数据库表名"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">
        </table>
    </context>
</generatorConfiguration>

第三步:
在路径:src/com/xxx/xxx/util下新建名为:MyMapper的inteface,内容如下:

package com.lianjia.freemarker.util;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

/**
 * 继承自己的MyMapper
 *
 * @author MR.ji
 * @since 2015-09-06 21:53
 */
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    //TODO
    //FIXME 特别注意,该接口不能被扫描到,否则会出错
}

这个文件主要跟上面第二步新建的文件中:

<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.xxx.xxx.util.MyMapper"/>
        </plugin>

相呼应。

第四步:
在路径:src/com/xxx/xxx/util下新建名为:GeneratorDisplay的class类,内容如下:

package com.lianjia.freemarker.util;

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;

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

public class GeneratorDisplay {

    public void generator() throws Exception {

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("src/main/resources/generator/mybatis_generator.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);

    }

    public static void main(String[] args) throws Exception {
        try {
            GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

到此,基本整合就完毕了。说说我遇到的第一个坑。Maven什么的都设置好之后,从中央仓库无论如何无法下载跟generator插件相关的jar,最后更改了下载路径设置成为阿里巴巴的仓库。这个小伙伴儿们哪怕不用插件也可以设置一下。毕竟下载仓库在国内的jar,远比国外要快得多。顺便贴出来修改的地方:

<mirror>
   <id>alimaven</id>
   <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
   <mirrorOf>central</mirrorOf>
</mirror>

第二个坑就是:

[ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project freemarker: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate failed: Exception getting JDBC Driver: com.mysql.jdbc.Driver -> [Help 1]
[ERROR]

无法获取加载jdbc,这个问题困扰了我很久。也在网上寻找了很多处理的方法,结果到我这儿都不好使。比如说pom文件中jdbc的版本过高造成的,或者本地jar路径问题等等都尝试过,都无法解决问题。最后没办法,加上了上文中第四步。
可以尝试舍弃第四步。然后在Maven project→mybatis-generator→mybatis-generator:generate双击运行……

算是自己学习的心得了吧!

如果遇到如下问题时:
问题一:MyBatis Generator报错:Cannot instantiate object of type……
解决办法:

<plugin>
		          <groupId>org.mybatis.generator</groupId>
		          <artifactId>mybatis-generator-maven-plugin</artifactId>
		          <version>1.3.5</version>
		          <configuration>
		            <verbose>true</verbose>
		            <overwrite>true</overwrite>
		            <configurationFile>src/main/resources/mybatis/generator-config.xml</configurationFile>
		          </configuration>
		          <dependencies>
		            <!--MyBatis Generator及工具-->
		            <dependency>
		              <groupId>org.mybatis.generator</groupId>
		              <artifactId>mybatis-generator-core</artifactId>
		              <version>1.3.5</version>
		            </dependency>
		            <dependency>
		              <groupId>tk.mybatis</groupId>
		              <artifactId>mapper</artifactId>
		              <version>3.4.6</version>
		            </dependency>
		          </dependencies>
		</plugin>

问题二:mybatis generator插件报错Exception getting JDBC Driver: com.mysql.jdbc.Driver
解决办法:
<plugin>
    <dependencies>
	    <dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>${mysql.version}</version>
	    </dependency>
    </dependencies>
</plugin>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值