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

news/2024/7/5 19:29:16 标签: mybatis, java, mysql, maven, xml
xmlns="http://www.w3.org/2000/svg" style="display: none;">

文章目录

    • 第一步:创建一个工具项目,方便日后重复使用
    • 第二步:操作pom.xml导入jar包操作我们的工具MakeCode项目
    • 第三步:编写generatorConfig.xml
    • 第四步:编写MakeCode.java
    • 第五步:生成代码
    • 可能出现的问题
      • 这里是我遇到的出现的一些问题
    • 总结

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

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

在这里插入图片描述

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

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

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

xml"><!-- 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>

xml_32">第三步:编写generatorConfig.xml

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

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

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="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>

java_89">第四步:编写MakeCode.java

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

java">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了就好了在这里插入图片描述

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

在这里插入图片描述

总结

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

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

日月还长,加油后浪!


http://www.niftyadmin.cn/n/1758212.html

相关文章

Springboot整合Mybatis报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

Springboot整合Mybatis的时候报这个错&#xff0c;绑定失效&#xff0c;说明没找到mapper.xml&#xff0c;再后来在pom.xml配置一下资源路径解决问题 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.he.mapper.UserMapper.findByName…

关于使用Shiro后怎么得到用户信息

文章目录原来现在原来 ​ 原来我们使用Session时&#xff0c;是将realuser存入Session传到前台页面&#xff0c;但是在我们整合了Shiro后我们怎么通过Session拿到登陆用户的信息呢? RequestMapping("dologin")public String doLogin(HttpServletRequest requ…

Docker安装Mysql以及Mysql的基本操作——入门必看

Docker安装Mysql以及Mysql的基本操作——入门必看 文章目录Docker安装Mysql以及Mysql的基本操作——入门必看1.首先2.Docker安装Mysql3.创建用户4.数据库相关操作5.表的相关操作创建张表查询表基本查询条件查询wherelikeUNION升降序GROUPJOINIS NULL正则查询修改表更新表建立索…

vue-cli十分钟学习入门笔记――开袋即食

vue-cli十分钟学习之从一无所知到糊里糊涂 文章目录vue-cli十分钟学习之从一无所知到糊里糊涂1.为啥要学习Vue&#xff1f;2.NodeJs安装及其npm介绍3.脚手架vue-cli安装4.脚手架vue-cli的HelloWorld5.脚手架目录结构介绍1.为啥要学习Vue&#xff1f; ​ **为啥&#xff1f;&am…

Typora常见使用技巧

引用 >引用 代码框 java代码框标题 #(空格)一级标题 ##(空格)二级标题 ###(空格)三级标题 ####(空格)四级标题一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 无序序列 (空格)文字 -(空格)文字一 二 三 有序 1.(空格)文字1. 一 2. 二 3. 三表格 建议…

java反射示例演示代码

java反射示例演示代码 文章目录java反射示例演示代码反射是什么&#xff1f;代码示例1.用于反射的类2.reflect()方法输出3.method()方法输出反射是什么&#xff1f; ​ 介绍: Java的反射&#xff08;reflection&#xff09;机制是指在程序的运行状态中&#xff0c;可以构造任意…

SpringBoot整合Redis及简单使用

SpringBoot整合Redis 文章目录SpringBoot整合Redis一.Pom文件导入依赖二.配置application.properties文件三.新建一个User对象(可省略)四.简单测试五.总结一.Pom文件导入依赖 主要是Redis的依赖&#xff0c;还使用了hutool工具来转Json(可省略) <dependencies><!--R…

Springboot-Aop基于正则表达式和注解实现

Springboot-Aop基于正则表达式和注解实现 文章目录Springboot-Aop基于正则表达式和注解实现一.Aop的基本概念AOP的几个关键词二.Pom文件导入依赖项目结构三.具体实现方式一.使用正则表达式配置切入点a.添加切面b.创建Controller测试c.测试d.结论方式二.使用自定义注解实现a.自定…