mybatis逆向工程之动态web项目

2023-11-19

有了逆向工程,单表的增删改查以及相关的实体类,还有属性注释都不用自己写了,都可以自动化生成,只需如下三步即可

逆向工程的优点是:自动化生成实体类和对应的增删改查,效率相对于之前个人开发时一个个写增删改查要高的多

逆向工程的缺点是:xml中的sql语句加入了mybatis自身的动态sql和一大堆判断等,对于对动态sql不是十分熟练的人而言,以后再功能扩展上会很困难

 注意:运行成功后记得刷新下,否则看不到

一、导包(如下包导对,成功80%)

 

二、新建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="testTables" targetRuntime="MyBatis3"> <property name="javaFileEncoding" value="UTF-8"/> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/pms" userId="root" password="1234"> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetProject:生成model类的位置 --> <javaModelGenerator targetPackage="cn.pms.model" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.pms.mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定数据库表 --> <table schema="" tableName="hotel" domainObjectName="Hotel"></table> </context> </generatorConfiguration>

 

三、写测试类

import java.io.File;
import java.util.ArrayList;
import java.util.List; 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; public class GeneratorSqlmap { public void generator() throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件 File configFile = new File("src/generatorConfig.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 { GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap(); generatorSqlmap.generator(); } catch (Exception e) { e.printStackTrace(); } } }

 

四、运行后的结果为下图所示表明成功了

 

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

mybatis逆向工程之动态web项目 的相关文章

  • 使用 Guice 注入类集合

    我正在尝试用 Google Guice 2 0 注入东西 我有以下结构 FooAction implements Action BarAction implements Action 然后我有一个带有以下构造函数的 ActionLibrar
  • Quarkus 不以编程方式选择 bean

    我试图以编程方式选择 bean 但 quarkus 不会注入 bean 并引发异常 不支持吗 public enum ReportType ONE TWO Qualifier Retention RUNTIME Target METHOD
  • 如何在log4j的配置文件中为文件附加器提供环境变量路径

    我有一个log4j xml配置文件 和一个RollingFileAppender我需要提供用于存储日志的文件路径 问题是我的代码将作为可运行的 jar 部署在 Unix 机器上 所以如果我传递这样的参数 value logs message
  • Java 读取大文本文件时出现 OutOfMemoryError

    我是 Java 新手 正在读取非常大的文件 需要一些帮助来理解问题并解决它 我们有一些遗留代码 必须对其进行优化才能正常运行 文件大小仅在 10mb 到 10gb 之间变化 只有当文件开始大小超过 800mb 时才会出现启动问题 Input
  • GET 请求的 Spring 注解

    这两种spring GET方法有什么区别呢 哪一种是首选方法 Component Scope request Path public class TestComponent GET Path hello public String prin
  • 检查 IPv4 地址是否在私有范围内

    在 Python 中 使用 IPy 模块您可以执行以下操作 gt gt gt ip iptype PRIVATE 有没有一个库或简单的方法可以在 Java 中执行相同的操作 似乎不完全是但是InetAddress有一些 isXX 方法 例如
  • 需要正则表达式帮助

    我正在尝试替换两次或多次出现的 br like br br br 标签与两个一起 br br 具有以下模式 Pattern brTagPattern Pattern compile lt s br s s gt s 2 Pattern CA
  • 关于Java泛型的一些问题

    假设我有以下接口和实现类 interface Foo
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • Cucumber DataTable 错误 - io.cucumber.datatable.UndefinedDataTableTypeException:无法将 DataTable 转换为 cucumber.api.DataTable

    尝试使用 cucumber selenium java intelliJ 运行场景 但在其中一个步骤中出现有关 DataTable 的错误 在我开始使用测试运行程序并更改周围的一些内容之前 数据表工作正常并正确转换该步骤的参数 但我就是无法
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • 如何使用 swagger-codegen-plugin (maven) 生成客户端代码?

    我需要使用 swagger codegen plugin for maven 在 eclipse 中生成服务器存根代码 你能帮忙怎么做吗 以及需要什么配置 在 pom xml 中 我找到了这个答案 您只需要像下面这样更改 pom xml 即
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • 合并两个地图的最佳实践是什么

    如何将新地图添加到现有地图 地图具有相同的类型Map
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • Java和手动执行finalize

    如果我打电话finalize 在我的程序代码中的一个对象上 JVM当垃圾收集器处理这个对象时仍然再次运行该方法吗 这是一个大概的例子 MyObject m new MyObject m finalize m null System gc 是
  • 在 Freemarker 模板中检查 Spring 安全角色和记录的用户名

    有谁知道 freemarker 标签来检查 freemarker 文件中的 spring 安全角色和用户名 我从网络上的几个资源中发现以下代码将打印登录的用户名 但它没有打印用户名 而是打印 登录为
  • java中的预增量/后增量

    有人可以帮助我理解为什么 int i 1 int j 1 int k 1 int l 1 System out println i i System out println j j System out println k k System
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • Jackson 反序列化相当于 @JsonUnwrapped 吗?

    假设我有以下课程 public class Parent public int age JsonUnwrapped public Name name 生成 JSON age 18 first Joey last Sixpack 我如何将其反

随机推荐

  • QT模拟鼠标事件,实现点击双击移动拖拽等

    之前有涉及过一个远程桌面控制的项目 需要传一些指令给远程的电脑 实现简单的桌面点击 移动 拖拉等功能 当时没有时间实现得很好 今天又研究了一下 故此记录 虽然我用的是QT 但核心涉及的还是系统的API 所以其他平台应该也是一样的 废话不多说
  • 决战k8s,Kubernetes、Master节点部署组件,部署kube-proxy、测试、部署Dashboard(Web UI)、超细详解 ,安装篇③完结篇

    文章目录 下面这些操作在master节点完成 创建kubeconfig文件 创建kube proxy kubeconfig文件 下面这些操作在node节点完成 俩个节点上面拉取镜像 systemd管理kubelet组件 部署kube pro
  • 软件测试金融测试岗位,本人亲面

    网上银行转账是怎么测的 设计一下测试用例 回答思路 宏观上可以从质量模型 万能公式 来考虑 重点需要测试转账的功能 性能与安全性 设计测试用例可以使用场景法为主 先列出转账的基本流和备选流 然后设计场景 最后根据场景设计数据 实际面试中需要
  • HLSL 偏导数 ddx / ddy

    HLSL ddx ddy 在光栅化的时刻 GPUs会在同一时刻并行运行很多Fragment Shader 但是并不是一个pixel一个pixel去执行的 而是将其组织在2x2的一组pixels分块中 去并行执行 偏导数就正好是计算的这一块像
  • 如何正确理解JavaScript中的函数和方法

    你真的了解JavaScript的函数和方法吗 你知道它们有什么区别吗 你知道它们是如何定义和调用的吗 你知道它们是如何影响this值的吗 如果你对这些问题感到迷茫 那么本文就是为你准备的 本文将从基础开始 详细解释函数和方法的概念 特点 用
  • 教你实现微信8.0『炸裂』的表情特效

    写在开头 最近微信更新了8 0 其中之一最好玩的莫过于表情包的更新了 大家都在群里纷纷玩起了表情包大战 作为一个前端程序员 这就勾起了我的好奇心 虽然我从来没有实现过这样的动画 但是我还是忍不住想要去实现 最终我花了2天时间去看一些库的源码
  • IDEA 搭建ssm框架 (非maven)

    之前学习的时候大多都是使用maven搭建 但今天想尝试一下不使用maven 但是配置文件都差不多 只不过不使用maven的不用去配置pom xml 而是需要自己导入相应的包 废话不多说 直接开整 1 先看一下我的项目结构 我的项目就只是新建
  • js中parseInt()与parseFloat(),Number(),Boolean(),String()转换

    js将字符串转数值的方法主要有三种 转换函数 强制类型转换 利用js变量弱类型转换 1 转换函数 js提供了parseInt 和parseFloat 两个转换函数 前者把值转换成整数 后者把值转换成浮点数 只有对String类型调用这些方法
  • cesium很全的入门教程-翻译官网和加入自己理解

    Cesium WorkShop cesium快速入门教程 快速入门教程基本涵盖了大多数的CesiumJS API概念 主要用于Cesium基本入门 对Cesium有全面基本的了解和使用 一 概述 本教程会一步一步教会你做一个项目 主要介绍如
  • 为什么 Linux 的 htop 命令完胜 top 命令

    在 Linux 系统中 top 命令用来显示系统中正在运行的进程的实时状态 它显示了一些非常有用的信息 比如 CPU 利用情况 内存消耗情况 以及每个进程情况等 但是 你知道吗 还有另外一个命令行工具 htop 它与传统的 top 命令功能
  • 2023最新计算机大数据毕业设计选题推荐100例

    文章目录 0 前言 1 如何选题 1 1 选题技巧 如何避坑 重中之重 1 2 为什么这么说呢 1 3 难度把控 1 4 题目名称 1 5 最后 2 大数据 选题推荐 2 1 大数据挖掘类 2 2 大数据处理 云计算 区块链 毕设选题 2
  • 使用ESP8266模块在WIFI下通过网页远程控制LED开关

    一 所需器件 1 USB TO TTL 2 LED灯 3 面包板 4 连接线 5 电脑 二 配置Arduino IDE环境 1 安装ESP8266开发板软件包 使用1 6 4及以上版本的Arduino 打开Arduino IDE 打开 文件
  • 关于组件u-input

    关于自定义封装input
  • 大海捞针 Skia(C++) 第 3 期:绘制文本

    前言 本期将正式给大家介绍Skia的使用 文章将涉及一个目的的多种方案多种情况 文章较长 请大家耐心阅读 关键词 PNG图像 文件 文本 字符串 UTF8 UTF16 UTF32 编码转换 Visual Studio 设置 高级保存选项 案
  • 能力成熟度模型集成(CMMI)

    实施CMMI意义 质量和进度 能保证软件开发的质量与进度 能对 杂乱无章 无序管理 的项目开发过程进行规范 成功控制 因为质量有所保证 浪费在修改 解决客户的抱怨方面的成本降低很多 绩效管理水平 公司通过过程改进 简历财富库以共享经验 而不
  • postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录

    引言 初次使用postman不是很清楚怎么使用 就直接上手 不想看postman的使用文档 故而采用直接上手实验的方式 下面记录一下 body在使用的时候的四种类型 类型说明 form data 既可以上传键值对 也可以上传文件 当上传的字
  • Gradle 庖丁解牛(构建源头源码浅析)

    http blog csdn net yanbober article details 60584621 是一个基于 Groovy 的框架了 也就是说我们得按照他的约束来玩了 和我们平时 Android 开发使用框架类似 一旦引入框架 我们
  • pandas---数据处理(excel文件)

    近期在弄一个项目的前期数据 所以总结了一下 内容如下 以下以csv文件为例 1 DataFrame常用操作 1 1 DataFrame去除空行 1 对于一般空行 2 对于列表式 list 空行 1 2 数据的填充 1 表格中填充0 1 3
  • Jenkins安装及基础环境配置

    原文地址 Jenkins安装及基础环境配置 BIGTREE Jenkins服务安装 方式1 下载jenkins war包 直接tomcat或者java jar jenkins war运行 方式2 直接jenkins msi安装 Window
  • mybatis逆向工程之动态web项目

    有了逆向工程 单表的增删改查以及相关的实体类 还有属性注释都不用自己写了 都可以自动化生成 只需如下三步即可 逆向工程的优点是 自动化生成实体类和对应的增删改查 效率相对于之前个人开发时一个个写增删改查要高的多 逆向工程的缺点是 xml中的