首页 > 其他分享 >Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类

Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类

时间:2023-12-09 20:05:06浏览次数:41  
标签:xml exception generator 生成器 springframework nested mybatis org


前言

今天将表建好了,但是一个一个的建实体类、Mapper接口、Mapper.xml文件就十分的麻烦,所以我就想到了MyBatis逆向,今天就操作一把!这里我们采用maven来进行操作。

一、新建generatorConfig.xml文件

首先建好表,在你的项目的resource文件中新建generatorConfig.xml文件。

Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类_spring boot

代码如下:

<?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>
<!--这里是找到你本地mysql链接驱动,但是8.0以上的会报错,所以我用的5.1.13,在D盘新建了一个文件夹-->
    <classPathEntry location="D:\mybatisGenerator/mysql-connector-java-5.1.13-bin.jar"/>
    <!--id可以随意,但targetRuntime必须MyBatis3-->
    <context id="DB2Tables1" targetRuntime="MyBatis3">

        <!-- 配置pojo的序列化 -->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
 <!-- 数据库的链接 改成你的 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/xxxx"
                        userId="xxxxx" password="xxxxx"/>

        <javaTypeResolver type="">
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
 <!-- 实体 -->
        <javaModelGenerator targetPackage="com.mangocms.mango.pojo" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
 <!-- .xml文件 -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSuzbPackages" value="true"/>
        </sqlMapGenerator>
        <!-- Mapper接口 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.mangocms.mango.dao"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
 <!-- 对应的表名称  和转化的实体名称  -->
        <table tableName="sys_user" domainObjectName="User"
               enableSelectByExample="false"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>
    </context>

</generatorConfiguration>
注意:

1、实体、mapper、.xml三者的targetPackage不需要在项目中建立对应的包,只需要指定要叫什么名字就可以了,这样会自动新建包。
2、.xml文件我们建立在targetProject="src/main/resources"这个路径下,因为SpringBoot会默认扫描resource文件下名为mapper文件夹中的mapper.xml文件
3、后面的表对应每次只能执行一张表

二、pom.xml配置

看看项目pom.xml里有没有如下配置:

<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.7</version>
        </dependency>

主要的来了!!!

<plugin>
  <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-maven-plugin</artifactId>
      <version>1.3.2</version>
 </plugin>

这个插件加上之后,maven那里就会多了一个如图所示的插件:

Mybatis使用generator逆向工程生成器生成entity、mapper、.xml模版类_逆向工程生成器_02


每次点击这个插件就可以执行generatorConfig.xml了,自动生成mapper、pojo、.xml文件,但是生成之后要把它从项目里去取消,因为我试了他在里面会报错,也不知道是不是我项目的原因,我生成完了就取消了,会报下面的错,不知道为什么!

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userMapper' defined in file [D:\SpringBootCode\mango\target\classes\com\mangocms\mango\dao\UserMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [D:\SpringBootCode\mango\target\classes\generatorConfig.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.NullPointerException

标签:xml,exception,generator,生成器,springframework,nested,mybatis,org
From: https://blog.51cto.com/u_12866610/8751468

相关文章

  • logback-boot.xml
    <?xmlversion="1.0"encoding="UTF-8"?><configuration><!--%m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】,,,--><!--appender是configuration的子节点,是负责写日志的组件。--><!--ConsoleAppender:把日志输出到控制台--......
  • 已解决:若依更换日志EasyExcel框架导出报错 java.lang.NoClassDefFoundError: org/apac
    先描述一下当时的场景回忆看到出错了,我就想可能是哪个路径写错了,或者导依赖名字写对,或者说是多了少了标点符号什么的。然而,还是想简单了,检查重启后发现问题并没有解决。于是就把所有我改过的地方检查了一遍,检查和这个依赖相关的代码。发现还是没啥关系后来去找百度、百度给的......
  • 【scikit-learn基础】--『数据加载』之样本生成器
    除了内置的数据集,scikit-learn还提供了随机样本的生成器。通过这些生成器函数,可以生成具有特定特性和分布的随机数据集,以帮助进行机器学习算法的研究、测试和比较。目前,scikit-learn库(v1.3.0版)中有20个不同的生成样本的函数。本篇重点介绍其中几个具有代表性的函数。1.分类聚类......
  • mybatis-plus 新版代码生成器模板
    publicclassCodeGenerator{publicstaticvoidmain(String[]args){//数据源配置FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/xdclass?useUnicode=true&characterEncoding=utf-8&useSSL=false","root",&qu......
  • 迭代器和生成器、异常捕获
    一、迭代器(Iterator)1、可迭代对象(Iterable)和可索引对象存储了元素的一个容器对象,且容器中的元素可以通过“__iter__()”方法或“__getitem__()”方法访问。可迭代对象不能独立进行迭代,可通过“for…in”遍历来完成2、常见的可迭代对象字符串、列表、元组、字典、集合、文件......
  • python 可迭代对象 迭代器 生成器
    一个对象若要用for循环则需实现def__iter__(self,item)或def__iter__(self,item)方法可迭代对象实现了def__iter__(self,item)方法  迭代器  实现了def__iter__(self,item)和def__next__(self)方法  迭代器一定是可迭代对象可迭代对象不一定是迭代器from......
  • flowable 项目的Pom.xml
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/......
  • 如何开发代码生成器平台?分享下思路
    大家好,我是鱼皮,我的新项目《鱼籽-定制化代码生成项目》系列教程正式开始!本次项目依然是从0到1带大家开发,会遵循企业项目开发的标准流程:需求分析=>技术选型=>项目设计=>项目初始化=>Demo编写=>前后端开发实现=>测试验证=>部署上线,带大家一步步完成整个项目。......
  • 处理XML-----xPath
    1从根节点筛选/2条件筛选选择category属性为'fiction'的<book>节点:/bookstore/book[@category='fiction']选择price属性大于30的<book>节点/bookstore/book[@price>30]选择不包含某个属性的节点//bookstore/book[not(@category)]3......
  • 新建模块&新建用户表&修改代码生成器文件&新建菜单
    1.新建模块打开IDEA在项目结构中新建rome-hotel的一个springboot项目,什么依赖都不需要 在pom.xml文件中修改坐标,引用父坐标 在父级pom文件中将模块加入 在rome-admin中的pom文件中加入admin-hotel,这样就能带动这个模块启动 将包名修改成和rome-admin一样 再创建其......