我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mybatis 代码生成器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mybatis 代码生成器

MBG与Example

GitHub - mybatis/generator: A code generator for MyBatis.

        我们在项目中使用Mybatis的时候,针对需要操作的一张表,需要创建实体类、Mapper映射器、Mapper接口,里面又有很多的字段和方法的配置,这部分的工作是非常频繁的。而大部分时候我们对于表的基本操作都是相同的,比如根据主键查询、根据Map查询、单条插入、批量插入、根据主键删除等等等等。当我们的表很多的时候,意味着有大量的重复工作。

        所以有没有一种办法,可以根据我们的表,自动生成实体类、Mapper映射器、Mapper接口、里面包含了我们需要用到的这些基本方法和SQL呢。

        Mybatis也提供了一个代码生成器,叫做Mybatis Generator,建成MBG,是mybatis的一个插件。我们只需要修改一个配置文件,使用相关的jar包命令或者java代码就可以帮助我们生成实体类、映射器和接口文件。

        MBG的配置文件里面有一个Example的开关,这个东西用来构造复杂的筛选条件的,换句话说就是根据我们的代码去生成where条件。

        原理:在实体类中包含了两个继承关系的Criteria,用其中自动生成的方法来构建查询条件。把这个包含了Criteria的实体类作为参数传到查询参数中,在解析Mapper映射器的时候会转换成SQL条件。

添加配置文件

我们添加如下的配置文件

                                                                                                                                                                                                                                                                                                                                                                

添加插件

        我们需要在pom.xml中添加对应的插件

                        org.mybatis.generator            mybatis-generator-maven-plugin            1.3.2                                        class="lazy" data-src/main/resources/generatorConfig.xml                        

 生成

        然后我们就可以利用插件帮助我们快速生成我们需要的表结构对应的相关文件

通用Mapper

        问题:当我们的表字段发生变化的时候,我们需要修改实体类和Mapper文件定义的字段和方法。如 果是增量维护,那么一个个文件去修改。如果是全量替换,我们还要去对比用MBG生成的文件。字段变动一次就要修改一次,维护起来非常麻烦。

方式一

        第一个,因为MyBatis的Mapper是支持继承的(见:https://github.com/mybatis/mybatis-3/issue s/35)。所以我们可以把我们的Mapper.xml和Mapper接口都分成两个文件。一个是MBG生成的,这部 分是固定不变的。然后创建DAO类继承生成的接口,变化的部分就在DAO里面维护。 

public interface UserMapperExt extends UserMapper {    public List selectUserByName(String userName);}

对应的映射文件

                                                                                                            

在全局配置文件中我们也需要扫描

        

所以以后只要修改Ext的文件就可以了。这么做有一个缺点,就是文件会增多。

方式二

        既然针对每张表生成的基本方法都是一样的,也就是公共的方法部分代码都是一样的,我们能不能把 这部分合并成一个文件,让它支持泛型呢? 当然可以!

        编写一个支持泛型的通用接口,比如叫GPBaseMapper,把实体类作为参数传入。这个接口里面定义 了大量的增删改查的基础方法,这些方法都是支持泛型的。 自定义的Mapper接口继承该通用接口,例如BlogMapper extends GPBaseMapper,自动获得对实 体类的操作方法。遇到没有的方法,我们依然可以在我们自己的Mapper里面编写。

        我们能想到的解决方案,早就有人做了这个事了,这个东西就叫做通用Mapper。

https://github.com/abel533/Mapper/wiki

        用途:主要解决单表的增删改查问题,并不适用于多表关联查询的场景。

         除了配置文件变动的问题之外,通用Mapper还可以解决:

  1. 每个Mapper接口中大量的重复方法的定义;
  2. 屏蔽数据库的差异;
  3. 提供批量操作的方法;
  4. 实现分页。

使用方式:在Spring中使用时,引入jar包,替换applicationContext.xml中的sqlSessionFactory和configure。

    

来源地址:https://blog.csdn.net/cfa3288/article/details/127089170

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mybatis 代码生成器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MyBatis ORM代码生成器推荐

在选择MyBatis ORM代码生成器时,您有多个选项可以考虑。以下是一些推荐的代码生成器,以及它们的特性和使用方法:Mybatis-MP简介:Mybatis-MP是一款基于MyBatis的ORM框架,提供了高度ORM程度,几乎不需要再写
MyBatis ORM代码生成器推荐
2024-09-16

Mybatis-Plus一键生成代码

Mybatis-Plus一键生成代码一、闲言碎语闲来无事看了看了MP的官网看到一键生成的代码更新了!整个Ui风格都变了,遂决定瞅一眼新的代码生成器官网地址~~二、引入依赖新的代码生成只有在MP的版本 >= 3.5.1才可以使用 并且不兼容之前的版本
Mybatis-Plus一键生成代码
2021-09-26

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

文章目录 前言一、Mybatis Generator简介二、Maven插件运行方式三、生成配置 generatorConfig.xmlMyBatis3Simple风格MyBatis3风格MyBatis3DynamicSql风格
2023-08-17

mybatis plus代码生成工具怎么用

这篇文章给大家分享的是有关mybatis plus代码生成工具怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言:原本想使用AutoGenerator 是 MyBatis-Plus 的官方代码生成器 ,尝试
2023-06-14

MyBatis Generator ORM层面的代码自动生成器(推荐)

Mybatis Generator是一个专门为 MyBatis和 ibatis框架使用者提供的代码生成器,也可以快速的根据数据表生成对应的pojo类、Mapper接口、Mapper文件,甚至生成QBC风格的查询对象,这篇文章主要介绍了MyBatis Generator ORM层面的代码自动生成器,需要的朋友可以参考下
2023-01-30

Mybatis实现自动生成增删改查代码

这篇文章主要为大家详细介绍了Mybatis如何实现自动生成增删改查代码的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2023-01-11

基于mybatis的java代码生成存储过程

问题:  项目中目前使用mybatis操作数据库,使用插件(mybatis-generator)自动生成代码,对于增改查,使用存储过程实现了一版本,方便使用。       insert代码生成器用法: insert_code_generator( in_var
基于mybatis的java代码生成存储过程
2020-03-08

代码演示Mybatis-Generator 扩展自定义生成

生成的注释不是我们想要的,我们期望的是根据数据库表、字段生成不同的注释;分页代码生成缺失,每个公司的分页方式不同,尤其是老久项目或已发布API,不能随意变动,那么如何自适应分页代码生成;Mapper.xml没有group by相关代码生成;重复生成代码时,Ma
代码演示Mybatis-Generator 扩展自定义生成
2020-05-21

编程热搜

目录