Mybatis五步完成自动生成代码——开袋即食篇

第一步:创建一个工具项目,方便日后重复使用

      这里我创建一个名为MakeCode的工具Maven项目,这样我们在以后就可以重复使用了

在这里插入图片描述

      为了方便演示,我再创建一个目标TestMybatisGennerator项目,就是我们想要生成代码的那个项目,并且建立两个对应的子包等待生成代码
在这里插入图片描述

第二步:操作pom.xml导入jar包操作我们的工具MakeCode项目

      我们一共需要两个包,一个数据库连接驱动包,一个生成代码的工具包

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.34</version>
</dependency>

第三步:编写generatorConfig.xml

      首先我们可以在根目录下面新建一个generatorConfig.xml文件

      重点:如果你要生成的对应的是mysql数据库的话,那就只需要修改我下面标注的5个位置就可以了

<?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="MysqlTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--1.配置数据库信息-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/MyShop"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <javaTypeResolver >
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!--2.配置你生成的pojo的存放位置,targetPackage包名称,targetProject:配置绝对路径一直到“java”目录就可以了-->
        <javaModelGenerator targetPackage="com.myshop.pojo" targetProject="D:\IDEAproject\TestMybatisGennerator\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!--3.配置你的mapper接口存放位置,targetPackage包名称,targetProject:配置绝对路径一直到“java”目录就可以了-->
        <sqlMapGenerator targetPackage="com.myshop.mapper"  targetProject="D:\IDEAproject\TestMybatisGennerator\src\main\java">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!--4.配置你的mapper接口对应的xml文件存放位置,targetPackage包名称,targetProject:配置绝对路径一直到“java”目录就可以了-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.myshop.mapper"  targetProject="D:\IDEAproject\TestMybatisGennerator\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!--5.tableName:配置你要生成的表     domainObjectName:以及生成的pojo类的名称,还有你的主键id
         useActualColumnNames:使用实际列名称,true:使用数据库的列名称  false:去掉下划线生成对应驼峰命名法的名字  -->
        <table tableName="category" domainObjectName="Category" >
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="id" sqlStatement="mysql" identity="true" />
        </table>

        <table tableName="goods" domainObjectName="Goods" >
            <property name="useActualColumnNames" value="false"/>
            <generatedKey column="id" sqlStatement="mysql" identity="true" />
        </table>
    </context>
</generatorConfiguration>

第四步:编写MakeCode.java

      我们可以看到所有的需要修改的地方就只有一个配置文件generatorConfig.xml的位置,这里我建议直接放到根目录,避免不要的麻烦。

package makecode;
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 MakeCode {
    public static void main(String[] args) {

        try {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File("generatorConfig.xml");//建议放到根目录下面,或者使用绝对路径
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = null;
            config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = null;
            myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(null);
            System.out.println("生成完成-OK!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

第五步:生成代码

      运行上面的MakeCode.java就可以在目标项目看到已经生成完毕了
在这里插入图片描述
在这里插入图片描述

可能出现的问题

这里是我遇到的出现的一些问题

1.生成的pojo类的example类报错,这里和生成代码本身无关,只需要Alt+Enter生成对应的解决方法就好

在这里插入图片描述在这里插入图片描述

2.生成的xml映射文件中dtd文件报红,这里只需要按照我下面的配置进行就可以解决在这里插入图片描述
在这里插入图片描述

3.生成的mapper接口注解报红,是因为还没有配置mybatis的原因。配置mybatis了就好了在这里插入图片描述

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.2</version>
</dependency>

在这里插入图片描述

总结

      因为mybatis自动生成代码在日常还是用的比较多的,所以直接就总结了一下,以便日后复用,这种方式相对使用命令行要来的简单一些,新手上手也比较友好,因为本身就是工具所以我也将MakeCode这个工具工程放到了
Github-MakeCode上面,如果大家需要可以直接下载使用,省去了新建项目的手续。

如果本文对你有帮助,请记得点个赞哦!

日月还长,加油后浪!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值