IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mybatis generator自定义sql以及方法生成(一) -> 正文阅读

[大数据]mybatis generator自定义sql以及方法生成(一)

前言

使用现成的轮子能提高工作效率,但同时里面也多多少少有些问题,比如样式、内容等等与自己需要的有些差别,最近在使用mybatis generator 生成相关内容时,里面的方法名和一些sql有点不符合自己的心意,于是开始了改造之旅。

在网上查找了相关资料后,终于生成了自己想要的东西,感谢大佬们的分享,同时我也将这个过程记录下来并分享给大家。生命不息,代码不止。

内容参考:

mybatis-generator扩展教程系列 -- 搭建MBG源码项目(入门铺垫篇)_shadowsick的专栏-CSDN博客

gong

1,从git上拉取代码,并导入idea

git地址:https://github.com/mybatis/generator

源码地址以及修改后的源码地址:

链接:https://pan.baidu.com/s/12n7f6g0XwQkp5-76uZa2Mg?
提取码:m6o2

?

2,新建一个module工程,用来存放生成的mapper方法、po文件以及mapper.xml文件

?

?3,准备mybatis-generator-config.xml配置文件,放在新建的mybatis-example工程中的resources下

<?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>
    
    <!-- 数据库驱动 -->
    <!-- 可以直接新建一个lib文件直接依赖就行 -->
    <!-- 也可以在pom文件中引入相关依赖 -->
	<classPathEntry location="路径/驱动包" />

    <context id="context" targetRuntime="MyBatis3">
        <commentGenerator type="org.mybatis.generator.internal.extra.NotesCommentGenerator">
            <!-- 文件编码 -->
            <property name="javaFileEncoding" value="UTF-8" />
            <!-- 忽略所有注解,使用自定义的注解生成 -->
            <property name="suppressAllComments" value="true" />
            <!-- 作者 -->
            <property name="author" value="cloud" />
            <!-- 时间 value值为时间格式-->
            <property name="date" value="yyyy/MM/dd" />
        </commentGenerator>
        
        <!-- 数据库的相关配置 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc-url"
                        userId="user"
                        password="password"/>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 实体类生成的位置 -->
        <javaModelGenerator targetPackage="com.cloud.dao.po"
                            targetProject="E:/local_project/idea/core/mybatis-example/src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- *Mapper.xml 文件的位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="E:/local_project/idea/core/mybatis-example/src/main/resources">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- Mapper 接口文件的位置 -->
        <javaClientGenerator targetPackage="com.cloud.dao.mapper"
                             targetProject="E:/local_project/idea/core/mybatis-example/src/main/java"
                             type="XMLMAPPER">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- 相关表的配置 -->
        <table tableName="t_sys_user" domainObjectName="SysUser"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

?4,在新建的mybatis-example工程中新建一个类,运行后会自动生成相关文件

public class MyTestRun {

    public static void main(String[] args) {
        File configFile = new File(System.getProperty("user.dir")
                +"\\mybatis-generator-core\\src\\main\\resources\\mybatis-generator-config.xml");
//        String config = configFile.getFile();
        String[] arg = { "-configfile", configFile.getPath(), "-overwrite" };
        ShellRunner.main(arg);

    }
}

5.在mybatis-example工程中的pom引入mybatis-generator-core

    <dependencies>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.4.2-SNAPSHOT</version>
        </dependency>
    </dependencies>

?6.运行结果如下:

?

初步介绍

本文章不会深究源码结构,着重在扩展与改造的地方,以下会罗列出相关的类

1.设置需要生成的mapper方法:????????
????????org.mybatis.generator.codegen.mybatis3.javamapper.JavaMapperGenerator.java

2.mapper方法组装:
????????org.mybatis.generator.codegen.mybatis3.javamapper.elements
? ????????示例:
? ? ?????????--生成selectByPrimaryKey方法:SelectByPrimaryKeyMethodGenerator.java

3.设置需要在mapper.xml文件中生成的sql
????????org.mybatis.generator.codegen.mybatis3.xmlmapper.XMLMapperGenerator.java

4.sql语句组装:
????????org.mybatis.generator.codegen.mybatis3.xmlmapper.elements
??????????示例:
?????????????--生成具体sql语句:SelectByPrimaryKeyElementGenerator.java
5.基础扩展类
????????org.mybatis.generator.api.IntrospectedTable.java

结束语

由于篇幅过长,具体细节下一篇介绍,希望写的东西能给大家带来实际的好处。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:17:06  更:2022-03-11 22:17:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:01:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码