工具MyBatis Generator(MBG)

MyBatis Generator 代码自动生成器 Mybatis的逆向工程就是由代码生成器生成我们需要的代码和映射文件。我们在编写Mybatis程序时,基本都是围绕着pojo类,Mapper接口,Mapper.xml文件等文件来进行的。如果实际开发中数据库的表特别多,那么我们需要手动去写每一张表的pojo类,Mapper接口,Mapper.xml文件,这显然需要花费巨大的精力,而且可能由于表字段太多,哪里写错了都难以排除。所以我们在实际开发中,一般使用逆向工程方式来自动生成所需的文件,这也是企业中一种非常常见的方法。 阅读详情

MyBatis Generator(MBG),这是官方帮我们提供的一个自动生成代码的工具,前面的课程中,我们都是脑袋里想好,pojo有哪些属性,属性的类型是什么,对应的数据表中的字段名字是什么,匹配的类型是什么.....然后还要写接口xxxDao,以及它的实现配置文件xxxDao.xml等等都是手动自己操作,以前我们学习Hibernate的时候,感觉方便就是写好pojo启动服务器Hibernate会自动帮助我们生成对应的数据表,MyBatis也有类似的工具,MBG就是官方给我提供的这样的工具,但它和Hibernate有点不一样就是,Hibernate帮我们生成表,MBG帮我们根据表生成接口、pojo类和xml这些文件!方向是反的。

工具地址这里找:

https://github.com/mybatis

要使用MBG首先要导jar包和建立一个XML配置文件

<dependency>
    <groupId>org.mybatis.generator</groupId>
	<artifactId>mybatis-generator-core</artifactId>
	<version>1.3.7</version>
</dependency>

以下元素就是MBG的最小配置

下面是一个较为完整的示例, 可以保存下来按需修改

<?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>

    <!-- 数据库的驱动, JAR/ZIP文件的全路径,maven工程,驱动已经依赖了,没用-->
    <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip"/>

    <!--targetRuntime用MyBatis3, 也就是默认的, 其他我基本不会用->
    <context id="DB2Tables" targetRuntime="MyBatis3">

        <commentGenerator>
            <!-- 去除自动生成的注释 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--基础的数据库连接-->
        <jdbcConnection driverClass="COM.ibm.db2.jdbc.app.DB2Driver"
                        connectionURL="jdbc:db2:TEST"
                        userId="db2admin"
                        password="db2admin">
        </jdbcConnection>

        <!--Java类型解析器, 目前也就只有forceBigDecimals可以给你玩-->
        <javaTypeResolver>
            <!--当数据类型为DECIMAL或者NUMERIC的时候, 如果是true的话则总是使用java.math.BigDecimal-->
            <!--以下是false, 即默认值的情况-->
            <!--如果有小数或者decimal长度大于18, Java类型为BigDecimal-->
            <!--如果没有小数, 以及decimal长度为10至18, Java类型为Long-->
            <!--如果没有小数, 以及decimal长度为5至9, Java类型为Integer-->
            <!--如果没有小数, 以及decimal长度少于5, Java类型为Short-->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!--Domain生成器-->
        <javaModelGenerator targetPackage="test.model" targetProject=".\src\main\java">
            <!--据说可以自动添加schema名, 可是我没用到过-->
            <property name="enableSubPackages" value="true"/>

            <!--生成全属性构造器, 没什么用, 如果有指定immutable元素的话这个会被忽略-->
            <property name="constructorBased" value="true"/>

            <!--生成不可变的domain, 这个我也很少用-->
            <property name="immutable" value="true"/>

            <!--每个Domain都继承这个bean-->
            <property name="rootClass" value="com.github.prontera.domain.base.BasicEntity"/>

            <!--当遇到String的时候setter是否会先trim()-->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!--Mapping生成器-->
        <sqlMapGenerator targetPackage="test.xml" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!--Mapper生成器, 当type为ANNOTATEDMAPPER时是带有@annotation的Mapper, MIXEDMAPPER是XML文件-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject=".\src\main\java">
            <property name="enableSubPackages" value="true"/>

            <!--每个Mapper所继承的接口-->
            <property name="rootInterface" value="com.github.prontera.Mapper"/>
        </javaClientGenerator>

        <!--字段命名策略过程: <columnRenamingRule> >> property name="useActualColumnNames"-->
        <!--alias属性是个神器, 会为所有SQL都添加, 做关联的时候就非常方便了-->
        <!--至于什么Example, 全关了就是-->
        <table alias="ha" tableName="ALLTYPES" domainObjectName="Customer"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false">

            <!--指定是否用数据库中真实的字段名, 而不是采用MBG转换后的驼峰-->
            <property name="useActualColumnNames" value="true"/>

            <!--自动集成改类-->
            <property name="rootClass" value="com.github.prontera.domain.base.HelloBasicClass"/>

            <!--Mapper自动继承的接口-->
            <property name="rootInterface" value="com.github.prontera.Mapper"/>

            <!--当遇到String的时候setter是否会先trim()-->
            <property name="trimStrings" value="true"/>

            <!--先进行columnRenamingRule, 再进行useActualColumnNames. 如果有columnOverride则忽略该配置-->
  <!--关于columnRenamingRule的具体例子 http://www.mybatis.org/generator/configreference/columnRenamingRule.html-->
            <columnRenamingRule searchString="^CUST_"      replaceString=""/>

            <!--顾名思义, 忽略某些列-->
            <ignoreColumn column="CREATE_TIME"/>

            <!--也是忽略数据列, 但是可以通过正则表达式, except子元素是可选的, 代表忽略除UPDATE_TIME外的列-->
            <ignoreColumnsByRegex pattern=".*_TIME$">
                <except column="UPDATE_TIME"/>
            </ignoreColumnsByRegex>
        </table>

    </context>
</generatorConfiguration>

Java的方法运行插件

 List<String> warnings = new ArrayList<String>();
   boolean overwrite = true;
   File configFile = new File("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);
13.3.3 MBG其他配置(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》 13.3.3 MBG其他配置(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》 项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm 文章目录公众号介绍13.3.3 MBG其他配置 公众号介绍 打扰了~ 程序编程之旅是由6年互联网从业经验的优快云博客专家谙忆,打造的互联网领域知名个人公众号。 公众号不只是有Java技术领域专业知识,也有算法、数据结构、企业级应用设计,还有诗和远方。 让你可 阅读详情

相关推荐

13.3.2 完整的MBG配置文件(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》

13.3.2 完整的MBG配置文件(MyBatis Generator逆向代码生成工具) -《SSM深入解析与项目实战》 项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm 文章目录13.3.2 完整的MBG配置文件MBG插件位置生成代码后的文件结构 13.3.2 完整的MBG配置文件 MBG的配置文件,如代码清单13-5所示。 代码清单13-5:MBG配置文件 <?xml version="1.0" encodin

谙忆-陈浩翔 1273

MyBatis Generator自动生成实体类、Mapper、XML文件

注意:mybatis generator plugin处也需要添加依赖,否则会报错。tip:关闭生成example实际运行并未起作用......运行mybatis-generator:generate。运行maven clean 和install验证。

wjhanye11的博客 432

主标题:Mybatis Generator (MBG)实战详解

其中,jdbcConnection标签用于配置数据库连接信息,javaModelGenerator标签用于配置生成实体类的信息,sqlMapGenerator标签用于配置生成Mapper接口的信息,javaClientGenerator标签用于配置生成Mapper XML文件的信息,而table标签则用于指定要生成的表名。Mybatis Generator (MBG)是Mybatis官方提供的一款代码生成工具,通过配置文件自动生成实体类、Mapper接口以及对应的xml文件,极大地提高了后台开发的效率。

m0_63411861的博客 452

MyBatis Plus Generator 自动生成Controller,Service,Impl,Mapper,XML,实体entity

目录结构(注:生成的xml文件位于mapper文件夹下(MyBatis Generator生成的xml一般放置于resources下(推荐))注:实际运行时1.7版本成功,2.0版本不知为何不能识别该velocity依赖。

wjhanye11的博客 414

驱动钛丝(SMA)的应用(5)汽车腰托气阀常见问题及解决方案

财哥在前段时间发布的《驱动钛丝(SMA)的应用(1)汽车腰托支撑按摩气阀模块》一文,引发了很多企业的拜访和交流。 目前很多厂家已经启动或正在进行相关研发,同时也遇到了诸如:钛丝选型、驱动位移、响应设计、温度控制、力量设计、点动滞后、铆接工艺、量化生产等问题。

weixin_39168671的博客 1245

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2083

mybatis-generator自动生成dao、mapping、bean配置详解(转)

<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <!-- 可以用于加载配置项或者配置文件,在整个配置文件中就可以使用$

S1ow 1万+

手把手教你用SIMCOM A7670C_FASL模组实现双路MQTT连接阿里云(附完整源码)

本文详细介绍了如何使用SIMCOM A7670C_FASL 4G模组实现双路MQTT连接阿里云,包括硬件配置、开发环境搭建、双路MQTT架构设计及实现细节。通过完整的源码示例和实战指南,帮助开发者快速掌握物联网设备开发中的多路MQTT连接技术,提升工业级应用的开发效率。

weixin_33696822的博客 227

mybatis-generator

首先 新建一个maven项目 配置pom.xml文件,在pom.xml文件里添加: &lt;build&gt;  &lt;pluginManagement&gt;   &lt;plugins&gt;      &lt;plugin&gt;     &lt;groupId&gt;org.mybatis.generator&lt;/groupId&gt;     &lt;artifactId&gt

qrnhhhh的博客 171

海思Hi3516CV610开发实战:在Ubuntu 22.04上从零构建嵌入式Linux开发环境

本文详细介绍了在Ubuntu 22.04上为海思Hi3516CV610开发板搭建嵌入式Linux开发环境的完整流程。从虚拟机配置、系统安装到基础环境设置,提供了实用技巧和常见问题解决方案,帮助开发者高效构建适用于智能视觉处理的开发环境。

weixin_29197699的博客 510

UCIe物理层 —— 逻辑协议 (2)

本章开始主要介绍UCIe协议第四章,物理层逻辑定义和规范。如其他的通信协议一样,接口的物理层包含两个部分,逻辑子层和电气子层。其中逻辑层主要负责:1.定义接口信号和时序2. 定义发送端如何将上层数据分发到各个物理通道以及接收端如何把从各个通道收到的数据恢复成byte stream(Flit)。3. Broken Lane的repair和remap。4. 链路初始化,训练(training)和电源状态管理/切换。5. 扰码Scrambling和training sequence的产生。

m0_47581558的博客 1483

mybatis.generator代码生成工具

需要使用mybatis.generator生成代码。

l0oo0ng的博客 458

【数据同化第一期】基本概念介绍

【数据同化第一期】基本概念介绍

WW、forever的博客 1906

MyBatis逆向工程--MyBatis Generator (MBG)代码生成工具的使用

人工智能,零基础入门!http://www.captainbed.net/inner 一、新建一个maven项目,pom文件引入jar包依赖: <!-- MBG==MyBatis逆向工程代码生成依赖包 --> <dependency> <groupId>org.mybatis.generator</groupId> <...

code_monkey的博客 19万+

Android系统开发面试指南:系统Launcher岗位解析

本文针对上海礼聪Android系统开发岗位(侧重系统Launcher、充电/电池/USB底层开发)提供面试指南。内容涵盖应用开发(启动流程优化)、系统底层(充电状态机、USBOTG)、编程能力(线程安全LRU实现)、问题排查(ANR分析)及沟通协作等核心考点。通过5类典型问题及技术深度解析,帮助候选人系统准备,重点考察Framework源码理解、系统调试能力和工程思维。建议结合PowerManagerService等模块源码和systrace工具进行实践准备,同时注重技术表达与协作能力的展现。

郑伟强dev的专栏 935

破晓之光:GTK#框架让C# WinForm程序跨平台运行的终极指南

GTK#框架的出现,彻底打破了C# WinForm只能在Windows上运行的桎梏。

墨夶的博客 605

MyBatis框架核心之(十)Mybatis generator(MBG)代码生成工具

十、Mybatis generator (MBG)自动生成持久层代码 简介:mybatisgenerator是用来给持久层自动生成代码的,会根据表中的字段,和你在配置文件之中的设置,自动生成数据库的查询语句和实体类,大大的提高了开发的效率,与hibernate的你逆向生成有点像   mybatis-generator自动生成代码有三种用法: 1.   命令行 2.  eclipse插件

弱弱的猿 998

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MBG工具类-mybatis自定义代码生成器(Generator)

MBG工具类-mybatis自定义代码生成器(Generator)

石磊的博客 2345

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Mybatis generator,MBG使用详细介绍,MBG xml合并,Java合并,Lombok

Mybatis,Mybatis generator MBG,lombok mybatis java合并,xml合并,model合并,Mapper合并。

Mdzzesb的博客 1658

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

可视化逆向工程利器 mybatis-generator-gui-extension:一张图看懂 MyBatis 代码生成器能做什么

如果你还在为手写 MyBatis 的 Mapper、XML 和实体类而烦恼,那么这款主打**可视化逆向工程**的 **MyBatis 代码生成器**——mybatis-generator-gui-extension 一定能帮到你。它是 MyBatis Generator(MBG)的图形化界面扩展,把原本晦涩的 XML 配置全部变成所见即所得的勾选操作,还能一键生成 Service、Controll

gitblog_01057的博客 396

Mybatis generator,MBG使用详细介绍,MBG xml合并,Java合并

Mybatis generator mybatis 自动生成代码工具介绍 mybatis使用起来轻便,可编写Sql。受到很多开发者的喜爱。但是由于项目需要大量sql也让人很烦躁。 所以mybatis自己开发出了自动生成代码工具。 mybatis MBG官方源码 MBG官方文档 官方文档很详细但是还是有一些很好用的功能细节没有提及,在这里简单介绍一下。 MBG生成的代码是可以和mybatis发行的版本兼容的。 targetRuntime 生成代码的目标 MyBatis3DynamicSql 要求MyBatis

斯旺森swanson 1081

MyBatisGenerator(MBG)代码自动生成器,从此解放你的双手

MyBatis生成器(MBG)是MyBatis MyBatis和iBATIS的代码生成器。它将为MyBatis的所有版本以及2.2.0版之后的iBATIS版本生成代码。它将内省一个数据库表(或多个表),并生成可用于访问表的工件。这减少了设置对象和配置文件以与数据库表交互的最初麻烦。MBG试图对大部分简单CRUD(Create、Retrieve、Update、Delete)的数据库操作产生重大影响。仍然需要手工编写SQL和对象以用于连接查询或存储过程。

蔚蓝 1582

MyBatis Generator 逆向工程

官方文档 简称MBG,是一个专门为 MyBatis 框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件、接口,以及bean类。 支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要我们手工编写。 使用 注意:如果在一个工程里面建立新的 Module ,在该 Module 里面生成,很容易出问题。最好就是,在一个工程的目录里面就生成。 数据库中建表。 工程目录 写 MBG 的配置文件,最好命名为 generatorConfig.xml 。文件保存在

weixin_42524843的博客 140

MyBatis Generator自动生成代码

MBG介绍 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 MyBatis使得数据库操作变得非常

诗酒年华 2482
上一篇: 动态SQL的绑定和公共sql语句片段
下一篇: Mybatis的分页插件
synchronizeOn
博客等级 码龄3年 1193粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值