基于generator链接数据库实现实体类、controller、mapper、mapper.xml、service、impl的自动生成

2023-11-17

1、查了很多csdn的博客,发现只有生成实体类的generator配置,并没有自动生成service等java文件的配置

1.1、对于我这种懒人当然是不能容忍的

2、如何使用generator生成service、impl、controller、entity、mapper、mapper.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:起个名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3" defaultModelType="flat" >
        <!--此处的plugin标签为自己封装的自动生成service、impl、controller的.class-->
        <!--需使用我提供的jar包方可使用哦-->
        <plugin type="org.mybatis.generator.plugins.ServiceAndControllerGeneratorPlugin" >
        <property name="targetProject" value="./src/main/java"/>
        <property name="servicePackage" value="cn.pms.goal.service"/>
        <property name="serviceImplPackage" value="cn.pms.goal.service.impl"/>
        <property name="controllerPackage" value="cn.pms.goal.controller"/>
        <!--UserService,该值则为Service-->
        <property name="serviceSuffix" value="Service"/>
        <!--Service接口的父接口-->
        <property name="superServiceInterface" value="org.aurochsframework.boot.commons.service.GeneralService"/>
        <!--ServiceImpl的父类-->
        <property name="superServiceImpl" value="org.aurochsframework.boot.commons.service.AbstractGeneralService"/>
        <!--controller的父类接口-->
        <property name="superController" value="org.aurochsframework.boot.commons.controller.GeneralCrudController"/>
        </plugin>
        <plugin type="org.mybatis.generator.plugins.LombokPlugin">
            <property name="hasLombok" value="true"/>
        </plugin>
        <!--optional,指在创建class时,对注释进行控制-->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--jdbc的数据库连接 wg_insert 为数据库名字-->
        <!--可以使用oracle、mysql,我现在用的是oracle-->
        <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                        connectionURL="***你的链接路径***"
                        userId="**用户名**"
                        password="*密码*"></jdbcConnection>
        <!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
        <javaTypeResolver>
            <!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
            <!-- 不是 double 和 long 类型 -->
            <!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <javaModelGenerator targetPackage="cn.wwkj.pms.goal.entity.po"
                            targetProject="src/main/java">
            <!-- 是否允许子包 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否对modal添加构造函数 -->
            <property name="constructorBased" value="true"/>
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true"/>
            <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
        </javaModelGenerator>
        <!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 -->
        <sqlMapGenerator targetPackage="cn.pms.goal.mapper.mapper"
                         targetProject="src/main/java">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cn.pms.goal.mapper" targetProject="src/main/java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- tableName是数据库中的表名,domainObjectName是生成的JAVA模型名,后面的参数不用改,要生成更多的表就在下面继续加table标签 schema属性解决了generator的mapper.xml重复生成的问题-->
        <!--tableName根据当然就是数据库的表名称啦                               主要防小白-->
        <table tableName="PROJ_GOAL_BILL" schema="WWAPP_YSJX_AYS" domainObjectName="ProjGoalBill"
               enableInsert="false"
               enableSelectByPrimaryKey="true"
               enableSelectByExample="false"
               enableUpdateByPrimaryKey="false"
               enableCountByExample="false"
               enableDeleteByPrimaryKey="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               selectByExampleQueryId="false">
            <generatedKey column="id" sqlStatement="Oracle" identity="true"/>
        </table>
    </context>
</generatorConfiguration>

3、在pom中引入generator

<!--generator自动生成实体类-->
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.5</version>
        </dependency>
<!--generator自动生成实体类-->
<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/generatorConfig.xml</configurationFile>
               </configuration>
                <!-- 引入链接数据库的jar包-->
                <dependencies>
                    <dependency>
                        <groupId>com.oracle</groupId>
                        <artifactId>ojdbc14</artifactId>
                        <version>10.2.0.5.0</version>
                    </dependency>
                </dependencies>
</plugin>

4、最后附上jar包下载地址引入替换自己的generator即可

https://download.csdn.net/download/m0_46657452/12840691

5、最后最后最后最后附上要替换的jar包教程

Alt

6.如何使用

在resources下添加generatorConfig.xml,因为已经引入了generatorjar包依赖,所以在右侧maven菜单中直接点击运行即可
在resources下添加generatorConfig.xml,因为已经引入了generatorjar包依赖,所以在右侧maven菜单中直接点击运行即可

7.效果

在这里插入图片描述

如果需要generator修改后的jar包依赖请联系

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于generator链接数据库实现实体类、controller、mapper、mapper.xml、service、impl的自动生成 的相关文章

  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • org.apache.hadoop.security.AccessControlException:客户端无法通过以下方式进行身份验证:[TOKEN,KERBEROS] 问题

    我正在使用 java 客户端通过 Kerberos 身份验证安全访问 HDFS 我尝试打字klist在服务器上 它显示已经存在的有效票证 我收到的异常是客户端无法通过以下方式进行身份验证 TOKEN KERBEROS 帮助将不胜感激 这是一
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • [命令技巧]alias

    转自 http www dutor net index php 2011 03 commands alias alias 假名 别名 bash的一个内建命令 用来给常用的较长的命令定义个简短的名称 alias命令的基本格式为alias wo
  • Tomcat环境搭建部署

    目录 Tomcat 环境搭建 Win10 Tomcat部署 Tomcat是常见的免费的web服务器 Tomcat 环境搭建 Win10 自己在搭建的过程中出现了一些问题 网上找了找解决方法 发现还是有一些问题 记录一下 Tomcat下载 h
  • overflow相关面试题

    overflow 是 CSS 属性 用于控制元素的溢出内容的处理方式 当元素中的内容超出其容器时 可以通过该属性进行控制 overflow 属性通常与容器元素 如 div 或 一起使用 overflow 属性可以取以下几个值 visible
  • osgEarth的Rex引擎原理分析(五十七)osgEarth中多个着色器的源代码的编译链接过程

    目标 五十四 中的问题129 osgEarth中多个着色器的源代码的编译链接过程 1 先一个一个编译 void Shader PerContextShader compileShader osg State state extensions
  • 在Ubuntu 20.04上成功安装 rtx 3060 notebook Nvidia cuda 和基本图形驱动

    cuda Toolkits中包含了对应的图形驱动 所以只需要安装CUDA 顺便就安装了基本的显卡驱动 最好在新笔记本上安装 经常会失败 重装Ubuntu也不怕丢失重要数据 为了保存用户数据 至少把硬盘分为3个区 1 swap 32GB 2
  • 阿里云发布首台云电脑“无影”,传统 PC 已“末路”?

    作者 硬核云顶宫来源 硬核编辑部 在9月17日的云栖大会上 阿里云智能总裁 达摩院院长发布阿里云第一台云电脑 无影 这是一台长在云上的 超级电脑 只需将一张名片夹大小的 C Key 上连接一块屏幕 就可以进入专属云电脑桌面 访问各种应用和文
  • 整数规划的分支定界法

    分支定界法 把全部可行解空间进行恰当地进行系统搜索 这就是分支定界法的基本内容 我们通常把全部可行解空间反复分割为越来越小的子集 这就称为分支 并对每个子集内的解集计算出一个目标下界 针对最小值问题 这称为定界 在每次分支后 凡是界限超过已
  • 轻轨服务器一般用什么系统,原来轨道交通集成平台的优势是因为这个啊......

    原标题 原来轨道交通集成平台的优势是因为这个啊 轨道交通的重要性就不多说了 火车 高铁 地铁都是大多数人的出行首选 也因此带来铁路交通管理的困难 仅靠人力是远远不够的 必须依靠现代安防科技 但是各个安防系统无法兼容 会造成后台管理的困难 飞
  • 【registries】registrie rest-service idea 无法引入

    1 概述 因为需要 我在外网mac环境尝试本地运行registry 经过一番折腾后 运行主类报错com hortonworks registries webservice RegistryApplication java lang Clas
  • 目标检测从零开始的学习之路--原理篇

    安装相关 Anaconda官网下载安装下一步进行到底 相关环境那儿记得打勾 不然就自己添加下环境变量就好 另 一般进官网就找Download 再找相关想下载的版本 适配系统之类的 这里下载的是Python 3 7 version for W
  • 设计模式:命令模式

    命令模式很好理解 举个例子 司令员下令让士兵去干件事情 从整个事情的角度来考虑 司令员的作用是 发出口令 口令经过传递 传到了士兵耳朵里 士兵去执行 这个过程好在 三者相互解耦 任何一方都不用去依赖其他人 只需要做好自己的事儿就行 司令员要
  • SSM家庭理财个人理财系统-JAVA【数据库设计、源码、开题报告】

    第一章 绪论 1 1 课题背景 目的及意义 从 20 世纪末以来 在全球经济日趋一体化的背景之下 中国经济也得到了飞速的发展 家庭收入也快速增长 居民的消费结构发生了巨大变化 购置房产 旅游 汽车消费 教育等成为居民消费重点 现代家庭越来越
  • 南京邮电大学算法分析与设计实验三(回溯法)

    文章目录 问题一 回溯法求解 8 皇后问题 一 题目 二 代码 三 实验结果 问题二 回溯法解决装载问题 一 题目 二 代码 三 实验结果 思考题 N皇后输出独立解 一 题目 二 代码 三 实验结果 问题一 回溯法求解 8 皇后问题 一 题
  • maven(总)

    maven maven的简介 maven主要服务于基于java平台的项目构建 依赖管理和项目信息管理 主要体现在项目和管理 瀑布式开发 在做项目的时候要求有明确的需求 必须按照需求一步一步去做好规划 在项目的运行过程中严格的产出一些文档 敏
  • jenkins使用SSH自动发布到远程服务器的注意事项

    1 配置远程服务器 在我们的全局配置里配置SSH服务器时 这个地方写我们服务器接收的根路径 2 部署项目配置SSH传输文件的问题 重点 下图是我们填写的正确方式 下面我做详细介绍 a 使用mavne打包发布后端项目的时候 我们构建完成后选择
  • hadoop查看fsimage

    一 使用hdfs命令获取FsImage数据文件 hdfs dfsadmin fetchImage tmp meta 注意 这是本地文件系统 二 执行命令解析fsimage文件 hdfs oiv i tmp meta fsimage 0000
  • python中OS模块;

    OS模块 OS模块简单的来说它是一个Python的系统编程的操作模块 可以处理文件和目录这些我们日常手动需要做的操作 在自动化测试中 经常需要查找操作文件 比如查找配置文件 从而读取配置文件的信息 查找测试报告等等 经常会对大量文件和路径进
  • libcurl 库处理url链接字符串包含中文导致执行失败问题

    1 问题 通常见到的url链接地址一般都是不包含中文的或者已经将中文转码过的 但有些情况下仍然有中文情况 这时候使用curl easy setopt curl CURLOPT URL sUrl c str 会执行失败 因此需要想办法进行字符
  • 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等

    在学习unity的过程中 被各种贴图弄得晕头转向 为了弄清楚各种贴图 查询了很多资料 粗略的整理如下 只要耐心看完 对贴图的基本用法基本上就没问题了 1 Albedo 贴图 可以看做是Diffuse颜色贴图 Albedo 反照率 贴图 用于
  • 基于generator链接数据库实现实体类、controller、mapper、mapper.xml、service、impl的自动生成

    基于generator链接数据库实现实体类 controller mapper mapper xml service impl的自动生成 1 查了很多csdn的博客 发现只有生成实体类的generator配置 并没有自动生成service等