Mybatis Generator(逆向工程)

Mybatis逆向工程 —— Mybatis Generator Mybatis Generator简称 MBG,是一个专门为 MyBatis和 ibatis框架使用者提供的代码生成器。也可以快速的根据数据表生成对应的pojo类、Mapper接口、Mapper文件,甚至生成QBC风格的查询对象。在说逆向工程之前,先了解一下正向工程:创建Java实体类,由框架根据实体类生成数据库表,Hibernate就是正向工程的代表。逆向工程:创建数据库表,由框架根据数据库表生成Java实体类、Mapper接口、Mapper映射文件。 阅读详情

Mybatis Generator(逆向工程)

编程的一部分意义就在于消除人类的重复劳动,所以重复的编程天然就不该存在;

mybatis的逆向工程解决了利用ssm框架编写Javaweb项目时每次都要要机械重复的编写pojo、dao、mapper的问题。

mybatis逆向工程通过简单的配置就可以快速生成我们每次新建ssm项目时pojo、dao、mapper层的通用基础模板;通过简单的改写,我们可以就快速进入业务编写的工作;

重要提示:使用Mybats Generator时,mysql-connector-java版本不能用太新的,否则会出现错误,下面版本测试通过;

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.42</version>
</dependency>

 

 

使用

  1. 首先引入所需jar包

    maven项目在pom文件中引入:

    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
     <groupId>org.mybatis.generator</groupId>
     <artifactId>mybatis-generator-core</artifactId>
     <version>1.3.7</version>
    </dependency>
    ​

    普通web项目可以去这里下载所需jar包;

     

  2. 编写配置文件

    配置文件的编写,及关于逆向工程的其它问题可以参考Mybatis Generator的官方文档;下面摘取介绍一下常用配置(完整xml在文末)

    首先配置所连数据库

    <jdbcConnection
          driverClass="com.mysql.jdbc.Driver"
           connectionURL="jdbc:mysql://localhost:3306/testdatabase"
           userId="username"
           password="password">
    </jdbcConnection>

    配置与数据库中单表所对应的Java对象(po、domain)层

    这层怎么取名的都有,不止我上面及下面列出来的这几个,看个人习惯吧,下面是阿里发布的Java开发手册中的建议;

    •  DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
    •  DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
    •  BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。
    •  AO(Application Object):应用对象,在 Web 层与 Service 层之间抽象的复用对象模型,极为贴
    近展示层,复用度不高。
    •  VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
    •  Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map 类
    来传输。

     

    <!--./src/main/java 表示当前项目下的src/main/java(maven项目的默认结构),targetPackage则是指定包名  -->
    <javaModelGenerator targetPackage="hoimsys.pojo" targetProject="./src/main/java">
          <property name="enableSubPackages" value="true" />
          <property name="trimStrings" value="true" />
    </javaModelGenerator>

     

    配置dao层接口的生成位置

    <javaClientGenerator type="XMLMAPPER" 
                         targetPackage="hoimsys.dao"
                         targetProject="./src/main/java">
          <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    配置mapper文件生成位置

    <sqlMapGenerator targetPackage="mapper"  targetProject="./src/main/resources">
          <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    配置每个表的生成策略

    <!-- 简单配置一下表名与生成类名就能用 -->
    <table tableName="department" domainObjectName="Department" ></table>

    至此,在配置文件中配置这么多就可以用了,随便在那个测试中运行以下代码,刷新项目即可真香;

    public static void main(String[] args) throws Exception {
             List<String> warnings = new ArrayList<String>();
               boolean overwrite = true;
               File configFile = new File("MBG.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);
        }

    一些建议的可选配置

     <!-- 配置这个设置后生成的代码就会清爽很多(就不会生成那些看不懂的英文注释了...) -->
    <commentGenerator>
      <property name="suppressAllComments" value="true" />
    </commentGenerator>
     <!-- 生成toString方法) -->
    <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
     <!-- 不想要example类以及相关内容可以在table中配置以下属性 -->
    <table tableName="department" domainObjectName="Department" 
                    enableCountByExample="false" 
                    enableUpdateByExample="false"
                    enableDeleteByExample="false" 
                    enableSelectByExample="false"
                    selectByExampleQueryId="false"></table>
    

    最后

    如果有N张表,就会生成2N个PO,N个mapper.java以及N个mapper.xml,因为它除了常规的PO之外还生成了用于设置条件的xxxExample,不喜欢用删了就好,没事最好还是研究一下怎么用;

    以下测试MBG.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="DB2Tables" targetRuntime="MyBatis3">
     <!-- 生成toString方法) -->
    <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
    		<commentGenerator>
    			<!-- 配置这个设置后生成的代码就会清爽很多(就不会生成那些看不懂的英文注释了...) -->
    			<property name="suppressAllComments" value="true" />
    		</commentGenerator>
    		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
    			connectionURL="jdbc:mysql://localhost:3306/hoimsys" userId="root"
    			password="123456">
    		</jdbcConnection>
    
    		<javaTypeResolver>
    			<property name="forceBigDecimals" value="false" />
    		</javaTypeResolver>
    
    		<!--./src/main/java 表示当前项目下的src/main/java(maven项目的默认结构),targetPackage则是指定包名 -->
    		<javaModelGenerator targetPackage="hoimsys.pojo"
    			targetProject="./src/main/java">
    			<property name="enableSubPackages" value="true" />
    			<property name="trimStrings" value="true" />
    		</javaModelGenerator>
    
    		<sqlMapGenerator targetPackage="mapper"
    			targetProject="./src/main/resources">
    			<property name="enableSubPackages" value="true" />
    		</sqlMapGenerator>
    
    		<javaClientGenerator type="XMLMAPPER"
    			targetPackage="hoimsys.dao" targetProject="./src/main/java">
    			<property name="enableSubPackages" value="true" />
    		</javaClientGenerator>
    
    		<!-- 简单配置一下表名与生成类名就能用 -->
    		<table tableName="department" domainObjectName="Department"></table>
    		<table tableName="doctor" domainObjectName="Doctor"></table>
    		<table tableName="medicine" domainObjectName="Medicine"></table>
    		<table tableName="patient" domainObjectName="Patient"></table>
    		<table tableName="prescription" domainObjectName="Prescription"></table>
    		<table tableName="registration" domainObjectName="Registration"></table>
    		<table tableName="storage" domainObjectName="Storage"></table>
    		<table tableName="title" domainObjectName="Title"></table>
    
    	</context>
    
    </generatorConfiguration>

     

mybatis generator逆向工程生成代码重复 解决方案: 在配置文件中有以下一段配置内容: 这个元素非常有用,相信很多人都有过这样的需求,就是希望MBG生成的代码中可以包含**注释信息**,具体就是生成表或字段的备注信息。 使用这个元素就能很简单的实现我们想要的功能。这里先介绍该元素,介绍完后会举例如何扩展实现该功能。 该元素有一个可选属性type,可以指定用户的实现类,该类需要实现org.mybatis.generator.ap... 阅读详情

相关推荐

在IDEA中使用MyBatis Generator逆向工程生成代码

在IDEA的Maven工具下,使用MyBatis的逆向工程将数据库表和字段自动生成对应的实体类与映射文件。

AtlantisChina 488

简单高效解决逆向工程,字段没有注释,注释是英文,问题。

我要中文注释!!!问题思路,简单的配置了suppressAllComments = false之后,一些小伙伴十分懵逼,出来一堆英文注释,根本不是自己需要的。然后各种拼命往上找办法,找资源,一顿乱搞,没搞定。要么是操作繁琐,要么是配置困难。 本人对那些胡乱发帖子却搞不定问题的行为深恶痛绝。 下面是解决办法。 先把我的资源里面(我传到csdn的文件) MyCommentGenerator.j......

qq_34268925的博客 1599

5.6 Mybatis代码生成器Mybatis Generator (MBG)实战详解

本文我们主要实战Mybatis官方的代码生成器:Mybatis Generator(MBG),掌握它以后,可以简化大部分手写代码,我们只需要写复杂逻辑代码!创建与MySQL表对应的Java PO对象,字段一一对应;创建Mapper接口,和对应的XML映射文件(或注解)。首先是PO对象,我们往往创建与数据库表字段一一对应的PO对象;其次在Mapper里,通常都会写基本的增删改查代码。本文就带大家实战一下Mybatis Generator,用它生成实战项目全部表的PO对象和基本增删改查代码!

天罡gg的专栏 3万+

Mybatis代码生成器Mybatis-Generator使用详解

前提 最近在做创业项目的时候因为有比较多的新需求,需要频繁基于DDL生成Mybatis适合的实体、Mapper接口和映射文件。其中,代码生成器是MyBatis Generator(MBG),用到了Mybatis-Generator-Core相关依赖,这里通过一篇文章详细地分析这个代码生成器的使用方式。本文编写的时候使用的Mybatis-Generator版本为1.4.0,其他版本没有进行过调研。 引入插件 Mybatis-Generator的运行方式有很多种: 基于mybatis-generator

m0_67698950的博客 4万+

MyBatis Generator逆向工程实践指南

本文还有配套的精品资源,点击获取 简介:MyBatis Generator(MBG)是用于自动生成MyBatis SQL映射文件、Java模型类和DAO接口的工具,支持多种数据库。逆向工程允许根据数据库表结构自动生成代码,减少了重复性工作。文章将详细介绍MBG的安装配置、执行生成及与项目的整合测试流程,并强调了逆向工程提高开发效率和代码维护性的优势。注意配置细节和可能的代码...

weixin_28840811的博客 1418

小白 虚拟机 kali_Linux安装 详细教程

安装版本:VMmare workstation pro kali_Linux 安装环境:Window10 首先我们先了解一下什么是kali_linux: Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统。每一季度更新一次。由Offensive Security Ltd维护和资助。最先由Offensive Security的Mati Aharoni和Devon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行

m0_50917178的博客 9万+

MyBatis入门(十)选修之MyBatis Generator

目录一.工具引入二.增删改方法三.查询方法四.复杂查询1.多条件and查询2.多条件or查询 MyBatis生成器介绍 MyBatis Generator (MBG)是MyBatis MyBatis的代码生成器。它将为所有版本的MyBatis生成代码。它将内省一个数据库表(或多个表)并生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG试图对大量简单的CRUD (创建、检索、更新、删除)的数据库操作产生重大影响。您仍然需要为连接查询或存储过程编写SQL和对象代码。1. 准备数

长夜漫漫,无心睡眠 6606

Claude Code vs Codex

Claude Code 提供了一个生产就绪(production-ready)的实现,包含良好的错误处理、优雅的关闭逻辑、详细注释和文档,以及内置测试。Claude Code 输出了一个可运行的 Next.js + TypeScript 前端,但错过了一些设计里的黄色主题元素;Codex 则生成自己的版本,没有导出设计中的图片,也没严格遵照设计主题。Codex 完成同样功能,但更简洁直接,文档和注释少一些但功能达标。任务都用同样的提示,使用 TypeScript 实现,并在一天内完成。

weixin_49869937的博客 2391

Mybatis技术的使用一:逆向工程

MyBatis官方为我们提供了一个逆向工程,通过这个逆向工程,只要建立好数据表,那么MyBatis就会根据这个表自动生成pojo类、dao接口、sql映射文件。

a1939504134的博客 1万+

CMake安装grpc生成gRPCTargets.cmake文件

以下是安装语句: cd grpc_folder git submodule update --init cmake .. make -j 4 sudo make install 然而编写依赖gRPC的程序,发现无法调用gRPC的CMake文件,错误提示如下所示: include could not find load file: /usr/local/lib/cmake/g...

2331

QTest 单元测试框架及单元测试思考

qt 单元测试框架 QTEST 及思考

一个老菜鸟的学习分享 1万+

Mybatis的逆向工程(generator)

Tips:Mybatisgenerator官网http://www.mybatis.org/generator/configreference/commentGenerator.html Mybatis的逆向工程的作用是可由表帮我们生成bean,dao,xml映射文件 1. 引入Mybatisgenerator的jar包 获取jar包 将此jar包放到l...

banfhty655060的博客 128

从帧结构到数据解析:深入理解CJ/T 188 MBUS水表通信协议

本文深入解析CJ/T 188 MBUS水表通信协议,从帧结构到数据解析提供完整指南。通过典型报文示例和实战案例,详细讲解地址域、控制码、数据标识符(DI)等关键字段的解析技巧,并分享校验算法与常见错误排查方法,帮助开发者快速掌握MBUS协议在水表通信中的应用。

weixin_28710999的博客 423

MyBatis Generator(逆向工程)笔记总结

一、简介 MyBatis Generator(MBG)是MyBatis和iBATIS的代码生成器。它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。它将内省数据库表(或许多表),并将生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的初始麻烦。MBG寻求对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。您仍然需要为连接查询或存...

qq_38763540的博客 359

MiniMax H3本地部署实战:ComfyUI整合包安装与提速插件验证指南

在AIGC工具链快速演进的当下,本地部署内容生成模型成为许多创作者和开发者的关注焦点。本地部署意味着数据不出本机、可按需定制工作流,还能规避云端排队与外部依赖,其核心价值在于为内容生产提供可控、私密且可编程的生成环境。ComfyUI作为模块化节点式AI绘画工具,凭借灵活的工作流编排和API接口能力,成为承载这类模型的热门平台。MiniMax H3作为支持文本、参考图等多种输入的内容生成模型,与ComfyUI结合后,既适合个人进行概念验证,也能用于团队私有化流程搭建。实际落地过程中,中文整合包显著降低了环境配

weixin_29042035的博客 296

【基础-多选】HarmonyOS鸿蒙应用开发

1、HarmonyOS提供了基础的应用加固安全能力,包括混淆、加密和代码签名能力。正确2、可以通过ohpm uninstall 指令下载指定的三方库。错误3、支持模块化开发是指一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的Module进行开发,Module中可以包含源代码、资源文件、第三方库、配置文件等,每一个Module可以独立编译,实现特定的功能。这种模块化、松耦合的应用管理方式有助于应用的开发、维护与扩展。正确。

江拥羡橙的博客 1万+

Mybatis-generator Mybatis逆向工程

mybatis-generator

m0_47221240的博客 425

uniapp - 实现PDA扫码枪RFID批量扫描读取示例代码,uni-app APP识别RFID(射频识别)结合硬件设备进行扫描,uniApp调用RFID读写通用方案适配各种设备+完整实例源码教程!

uni-app PDA 读取RFID,基于uniapp开发PDA扫码枪APP:实现RFID批量扫描读取功能,UniApp中的RFID实现,手持机 RFID插件(uni-app集成手持设备rfid插件),uniapp自动识别RFID,uni-app调RFID模块,uni-app RFID识别插件,uniapp读取rfid,uniapp手持设备扫描rfid,uniapp超高频rfid识别,rfid标签识别,uniapp调用RFID读写,uniapp rfid扫码枪,uniapp中如何使用rfid插件,打包上线后

🏆 前端领域优质创作者 1万+

如何使用mybatis-generator的逆向工程

如何使用mybatis-generator的逆向工程一.在resources下建一个generatorConfig.xml文件1.内容如下,注意修改里面的配置二.创建maven插件1.在pom文件中buid 中 plugins中添加plugin插件2注意你上面代码中的configurationFile中的值是你generatorconfig.xml的路径哈,一般按照我上面那个是不得出问题的。三.按...

qq_43516912的博客 362

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用MyBatis Generator生成mybatis逆向工程

1.开发环境 开发工具:idea 构建工具:maven 2.创建项目 2.1使用idea创建maven项目 2.2配置pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h...

hyrzzh的专栏 349

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Mybatis Generator 自动生成数据库XML(Mybatis Generator 逆向工程)

Mybatis 逆向工程自动生成XML

liangmaoxuan的专栏 6623

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MyBatis逆向工程 Generator

正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程 的。 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: Java实体类 Mapper接口 Mapper映射文件 添加依赖和插件 pom <!-- 依赖MyBatis核心包 --> <dependencies> <dependency> <groupId>org.mybatis&l..

Lifelong learning 3646

Mybatis逆向工程-Mybatis Generator 用法

1、简介 Mybatis Generator是一个用于Mybatis逆向工程的工具。前面学习的方式都是先有pojo, mapper, xml, 然后再创建表。用逆向工程的方式,首先保证数据库里有表,然后通过Mybatis Generator生成pojo, mapper和xml。可以节约大家的时间,提高开发效率,降低出错几率。 2、用法 还没学会,后面补上 ...

XCC的博客 444

Mybatis的逆向工程的使用(mybatis generator)

Mybatis的逆向工程的使用(mybatis generator) 一。编写配置文件。 <?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"&g

weixin_46295656的博客 217

Mybatis逆向工程(generator)

使用Mybatis逆向工程(generator)的意义分别有哪些? 可以帮助我们将表中字段封装到实体类中 可以帮助我们生成实体映射文件 可以帮助我们生成实体接口类 使用Mybatis逆向工程(generator)步骤: 第一步:在pom.xml文件中引入MyBatis generator的依赖包 第二步:根据官方文档提示创建一个全局的配置文件mbg.xml 第三步:执行生成 开始项目结构示意图...

qq_38274970的博客 590

Mybatis的逆向工程Generator

Mybatis的逆向工程是一种通过数据库中的单表自动生成Java代码的工具。Mybatis官方提供的逆向工程可以针对单表自动生成Mybatis代码,包括mapper.java、mapper.xml和po类。在企业开发中,逆向工程是一个常用的工具,能够显著提高开发效率。使用Mybatis逆向工程的步骤包括:首先下载Mybatis插件,然后在Idea中配置数据库连接,最后生成相应的代码。这一过程简化了开发者的工作,减少了手动编写重复代码的时间。

曾昭武 973
上一篇: 初识js的一些小技巧
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值