使用MyBatis根据数据库快速生成代码的几种方法

  • 一、使用MyBatis插件和EasyCdoe插件
    • 1. 安装插件
    • 2. IDEA里配置MySQL
    • 3.根据数据库表生成文件
  • 二、mybatis-generator快速生成代码
    • 1. 配置generatorConfig.xml
    • 2. pom.xml中配置mybatis-generator
    • 3. 输入命令生成文件
  • 三、使用工具项目生成代码
    • 介绍
    • 1. 下载工具项目
    • 2. IDEA打开项目,修改配置文件
    • 3. 运行并生成文件
    • 4. 关于mybatis-generator-core中添加lombok

一、使用MyBatis插件和EasyCdoe插件

1. 安装插件

打开IDEA  > settings > Plugins > Marketplace
安装Free MyBatis Plugin 和 Easy Code 两个插件

2. IDEA里配置MySQL

2.1 选择DataSource >MySQL

2.2 连接到MySQL数据

3.根据数据库表生成文件

3.1 连接MySQL成功界面如下。
选中需要生成文件的表,右击EasyCode > Generate Code

3.2 选择package和path,会将生成的文件放在你选择的路径下,需要什么类型的文件在template中选中,然后开始生成。
3.3 生成成功

二、mybatis-generator快速生成代码

将mybatis-generator配置到项目里,将文件直接生成到指定的目录。

1. 配置generatorConfig.xml

在项目src/main/resources 下新建generatorConfig.xml,具体配置如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><!-- mysql-connector-java 版本需要与pom中引得版本一致 --><classPathEntry location="C:\.m2\repository\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar" /><context id="DB2Tables" targetRuntime="MyBatis3"><!-- 不加注释,因为默认注释是英文的 --><commentGenerator><property name="addRemarkComments" value="true"/><property name="suppressDate" value="true"/></commentGenerator><!-- 数据库连接信息 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/sqmall?characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=UTC"userId="root"password="root"></jdbcConnection><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetPackage 文件生成在指定包下,targetProject 路径--><javaModelGenerator targetPackage="com.seven.mall.entity" targetProject="src/main/java"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><sqlMapGenerator targetPackage="mappers"  targetProject="src/main/resources"><property name="enableSubPackages" value="true" /></sqlMapGenerator><javaClientGenerator type="XMLMAPPER" targetPackage="com.seven.mall.dao"  targetProject="src/main/java"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- domainObjectName 即生成后entity的名字 --><table tableName = "mall_category" domainObjectName="Category" /><table tableName = "mall_order" domainObjectName="Order" /></context>
</generatorConfiguration>

2. pom.xml中配置mybatis-generator

<!-- dependency和plugin中jar的版本根据自己需求选择,但同一个jar版本要保持一致 -->
<!-- 配置在dependencies中 -->
<dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version>
</dependency><!-- 配置在plugins中 -->
<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><overwrite>true</overwrite>   <!-- 重复生成时覆盖掉上次生成的文件 --></configuration>
</plugin>

3. 输入命令生成文件

在IDEA Terminal 或者打开命令行切换至项目路径
输入命令 mvn mybatis-generator:generate 回车即可

4. 成功生成

三、使用工具项目生成代码

介绍

其实第三种方法和第二种是一样的都是使用mybatis-generator生成。
第二种方法需要在自己的项目中配置一些东西
第三种方法是将这些配置,jar之类的东西拿出来做成一个项目,当作工具来用,使用时只需要修改表名和生成的package路径即可。

1. 下载工具项目

https://wwa.lanzoui.com/iG2Ent9yv5i
这个项目和第二种方法生成出来的java文件基本是一模一样的。
但是我在mybatis-generator-core-1.3.2.jar\org\mybatis\generator\plugins\里加了一个名称: LombokPlugin.class。会给生成的entity加上注解,这样就不需要写getter、setter和toString方法了.
当然了,如果不使用lombok,那么可以删掉这个class或者删除生成后的注解。

2. IDEA打开项目,修改配置文件

2.1 修改文件生成的位置

2.2 指定数据库表

3. 运行并生成文件

3.1 运行GeneratorSqlmap的main方法

3.2 生成成功
大功告成

4. 关于mybatis-generator-core中添加lombok

  1. 取下面的代码,编译为class文件:LombokPlugin.class
  2. 用解压软件打开mybatis-generator-core-1.3.2.jar
  3. 把编译好的class文件放到org\mybatis\generator\plugins\下即可
    感兴趣的小伙伴可以自己去试一下

代码如下:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//package org.mybatis.generator.plugins;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.Plugin.ModelClassType;
import org.mybatis.generator.api.dom.java.Interface;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass;public class LombokPlugin extends PluginAdapter {public LombokPlugin() {}public boolean validate(List<String> list) {return true;}public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {topLevelClass.addImportedType("lombok.Data");topLevelClass.addImportedType("lombok.Builder");topLevelClass.addImportedType("lombok.NoArgsConstructor");topLevelClass.addImportedType("lombok.AllArgsConstructor");topLevelClass.addAnnotation("@Data");topLevelClass.addJavaDocLine("/**");topLevelClass.addJavaDocLine("* Created by Mybatis Generator on " + this.date2Str(new Date()));topLevelClass.addJavaDocLine("*/");return true;}public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {interfaze.addJavaDocLine("/**");interfaze.addJavaDocLine("* Created by Mybatis Generator on " + this.date2Str(new Date()));interfaze.addJavaDocLine("*/");return true;}public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {return false;}public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {return false;}private String date2Str(Date date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");return sdf.format(date);}
}

使用MyBatis快速生成代码相关推荐

  1. Springboot整合mybatis plus生成代码

    一.Springboot整合mybatis plus生成代码 1.介绍 1.1.前言 从零开始搭建一个项目骨架,最好选择合适熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springbo ...

  2. 简单的利用IDEA搭建SpringBoot+Maven+Mybatis+自动生成代码

    最近在系统的学习SpringBoot框架,并且要用该框架做个项目--网上也大大小小看了很多教程,感觉很多写文章的人都不太负责任,只知道搬运,大概都没有实际操作过,问题也是有很多,所以自己写一篇文章记录 ...

  3. 【MyBatis】MyBatis自动生成代码之查询爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

  4. T4模板:MVC中用T4模板快速生成代码

    T4模板快速生成代码: 以快速生Dal文件为例,下面为T4模板文件的内容 <#@ template debug="false" hostspecific="true ...

  5. IOS开发基础之使用XCode12快速生成代码段

    IOS开发基础之使用XCode创建代码片段 这里我们选择的是XCode版本是12.3 版本,高版本 XCode12.3 是2020年12月份发布的最新的版本 务必学会使用快速生成代码,可以节约开发时间 ...

  6. 解决表字段使用关键字导致Mybatis Generator生成代码异常的解决方案

    From: http://blog.itfsw.com/2017/05/23/jiejue-biao-ziduan-shiyong-guanjianzi-daozhi-mybatis-generato ...

  7. xcode 快速生成代码块

    在xcode编写代码的时候,有很多都是类型相同的代码,如getter setter方法,如果对象的成员变量较多时,重复写getter setter方法就会很繁琐.但是xcode为我们提供了快速生成代码 ...

  8. Mybatis自动生成代码插件generator

    Mybatis自动生成代码插件generator 1.pom maven依赖 <dependencies><dependency><groupId>org.myba ...

  9. 如何让 Mybatis 自动生成代码,提高开发效率

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 在使用 mybatis 过程中, 当手写 JavaBean ...

  10. 如何让 Mybatis 自动生成代码

    在使用 mybatis 过程中, 当手写 JavaBean 和XML 写的越来越多的时候, 就越来越同意出错.这种重复性的工作, 我们当然不希望做那么多. 还好, mybatis 为我们提供了强大的代 ...

最新文章

  1. 智能产品AI服务智商的权重研究|未来研究
  2. OutputFormat接口实现类
  3. golang 使用 http socks 代理
  4. java打jar包,引用其他.jar文件
  5. Influxdb修改数据保留策略
  6. 经典算法刷题笔记pdf
  7. python3扫盲系列-(3)
  8. c 多文件全局变量_C语言开发单片机为什么大多数都采用全局变量的形式?
  9. harbor安装_Harbor简单安装部署,镜像仓库存储使用阿里云OSS
  10. lumia 1520Android刷机包,诺言基亚Lumia 1520官方体系破开格提升固件释出产
  11. 软件工程工具图(软件开发过程中可能用到的工具图)
  12. 实现计算机系统的资源共享,实现多操作系统计算机的资源共享.pdf
  13. 服务器系统开机密码怎么关闭,windows server2012怎么去除开机密码
  14. 无刷马达绕线机相对于人工的优势
  15. Auto.js Pro安卓免ROOT引流脚本开发系列教程28网易公开课(6)-取随机话术
  16. 桂电计算机专业2021推免人数,2021届计算机科学与技术学院推免公示
  17. [vue-router] Named Route ‘Layout‘ has a default child route. When navigating to this named route (:t
  18. java中trim_JAVA中trim()函数使用方法
  19. linux让文件所有用户可以读,Linux 下用户(andy)创建的文件可让特定用户(alice)修改...
  20. (转载)物联网平台 分类CMP、DMP、AEP、BAP

热门文章

  1. turbo c是什么?
  2. mysql日期函数大全_MYSQL教程mysql日期时间函数大全 mysql函数大全
  3. 2003系统企业版镜像服务器,Windows Server 2003 R2/SP2简体中文企业版原版镜像
  4. 单片机作业1_为OLED制作汉字字库_第1部分
  5. java编程输入学生成绩 判断最高分_从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分_学小易找答案...
  6. Ubuntu命令技巧
  7. 十个最好的免费杀毒软件
  8. 局域网服务器共享文件夹设置,局域网服务器共享文件访问权限管理方法
  9. 如何用好nofollow?nofollow应用的案例分析
  10. linux系统移植步骤