前言

工作中使用mybatis时我们需要根据数据表字段创建pojo类、mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,mybatis官方也发现了这个问题,因此给我们提供了mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系。

实际上,最非常流行MyBatis-Plus中内置了代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,有超多自定义配置等,在这主要介绍Mybatis的自动生成步骤。

1|1插件依赖

org.springframework.boot

spring-boot-maven-plugin

org.mybatis.generator

mybatis-generator-maven-plugin

1.3.5

mysql

mysql-connector-java

6.0.6

org.mybatis.generator

mybatis-generator-core

1.3.5

true

true

src/main/resources/generatorConfig.xml

注意:mysql-connector-java的版本问题,如果你的驱动是com.mysql.cj.jdbc.Driver,你就需要6.0.x的版本。如果是com.mysql.jdbc.Driver 则是5.1.x的版本。

1|2配置generatorConfig.xml

/p>

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

driverClass="${db.driverClassName}"

connectionURL="${db.url}"

userId="${db.username}"

password="${db.password}">

enableCountByExample="false"

enableUpdateByExample="false"

enableDeleteByExample="false"

enableSelectByExample="false"

selectByExampleQueryId="false">

1|3提供datasource.properties

db.driverClassName = com.mysql.cj.jdbc.Driver

db.url = jdbc:mysql://localhost:3306/twelve?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true

db.username = root

db.password = 你的密码

1|4执行maven命令

方式一:通过IDEA的MAVEN工具执行

方式二:通过MAVEN命令

配置命令:mybatis-generator:generate -e

然后Run就好了:

1|5可能出现的BUG

如果你复制粘贴了代码却出现稀奇古怪的BUG,很有可能是:

你的maven的配置文件问题

引用的mysql-connector-java与driverClassName版本不匹配

如果你的驱动是com.mysql.cj.jdbc.Driver,你就需要6.x.x的版本。如果是com.mysql.jdbc.Driver 则是5.x.x的版本。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

java 自动生成mybatis文件_如何自动生成Mybatis的Mapper文件详解相关推荐

  1. java 微信企业号上传文件_微信企业号上传下载多媒体文件接口详解演示-java

    讲完这篇博客,微信企业号的接口就说完了,下载了我源码的童鞋都知道,里面的备注很详细,但凡看过几遍就都会自己开发了,我说的这些接口至此我已经全部开发完了,剩下的就是你们自己写功能了,都是轻而易举的事情了 ...

  2. java微信支付必要参数_微信支付 开发账号体系各参数详解

    商户在微信公众平台提交申请资料以及银行账户资料,资料审核通过并签约后,可以获得表6-4所示帐户(包含财付通的相关支付资金账户),用于公众帐号支付. 帐号及作用: appid :公众帐号身份的唯一标识. ...

  3. C++框架_之Qt的信号和槽的详解

    目录 C++_之Qt的信号和槽的详解 1.概述 1.1对象树(子对象动态分配空间不需要释放) 2.信号和槽 Qt5 的书写方式:(推荐的使用)★★★★★ Qt4 的书写方式: 3.自定义信号槽 3.1 ...

  4. python温度转换_一步一步教会你,详解用Python实现一个简易的温度换算GUI小工具...

    今天,我们来使用Python完成一个小工具的制作.很简单,就是对于摄氏温度和华氏温度的相互换算.但是,我们的目的是复习一下之前学过的Python中tkinter的小内容. 复习下前面的知识 先来看下今 ...

  5. 从Java程序员进阶到架构师,6大核心技能要领详解

    " java架构师技能将分为如下6大环节:数据结构和算法,Java高级特性,Java web核心,数据库,Java框架与必备工具,系统架构设计. 希望能真正帮助到从程序员进阶到架构师之路的朋 ...

  6. java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解

    java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo { private HSSFWorkbook workbook = null; ...

  7. java ear war_基于Java的打包jar、war、ear包的作用与区别详解

    基于Java的打包jar.war.ear包的作用与区别详解 以最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希 ...

  8. 面试-Java【之】(revers)递归实现字符串倒序排列(详解)

    面试-Java[之](revers)递归实现字符串倒序排列(详解) 实现源码详解 <目录:Java-JDBC学习> <幕> 实现源码详解 public class Test { ...

  9. java中多线程之CAS(compareAndSet),Unsafe类大白话详解.

    java中多线程之CAS(compareAndSet),Unsafe类大白话详解 什么是CAS CAS原理 Unsafe类:     什么是CAS 比较并交换 在学习CAS之前,我们先了解一下JMM. ...

  10. 计算机主板一直滴滴响,主板报警声大全_主板一直滴滴滴短响含义详解

    主板报警声大全_主板一直滴滴滴短响含义详解 在电脑使用过程中,有时我们会听到电脑主板发出类似报警的声音,这时候说明可能电脑主板出现了一定的问题,电脑主板报警的原因有很多,我们可以从报警的声音去区分到底 ...

最新文章

  1. ORA-01940无法删除当前已连接用户
  2. map分组后取前10个_人口净流入排名前10的城市,在这10个城市买房,只涨不跌
  3. 数学--线性代数--奇异值分解(SVD)
  4. typecho模板ajax,typecho ajax登陆
  5. 数据库,SQL,万恶之源?
  6. ucint核心边缘分析_社会网络分析中核心边缘分析的简单教程
  7. 基于SSM框架的电影订票系统
  8. java实习收获与体会_java实习心得体会.doc
  9. 非安装版 Python 安装 PIP
  10. Ubuntu开启BBR加速
  11. hadoop2提交到Yarn: Mapreduce执行过程分析1
  12. VUE2.0 脚手架搭建项目,如何配置本地IP地址访问项目,详解
  13. 人过三十,能不能成大事?看这10个细节足够,听话听音看人看小
  14. Scratch3.0----函数(1)
  15. python制作搜索工具,深挖电脑里的小九九
  16. c语言函数任意个数参数的实现
  17. 通过经纬度坐标计算距离
  18. 软件工程导论第六版 第五章 总体设计知识点总结
  19. linux 触摸屏驱动分析
  20. 服务器意外断电的数据恢复过程

热门文章

  1. 壁纸网站的高清图片,完美符合视觉控的你!
  2. 创意合成广告欣赏:让人脑洞大开的设计
  3. 设计师社区|你和设计大咖一起沟通的平台--集设
  4. 适用于Photoshop,Xd和Sketch的UI套件
  5. 触发器_触发器第三弹
  6. 论网络安全(观直播后感)
  7. Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies
  8. 构建一个自定义CentOS7内核
  9. Java的native方法返回数组return Array(C语言)
  10. TypeError: __str__ returned non-string (type NoneType)