mybatis-generator是一款在使用mybatis框架时,自动生成model,dao和mapper的工具,很大程度上减少了业务开发人员的手动编码时间

坐着在idea上用maven构建springboot项目,亲测可用,流程记录如下

1.添加依赖

<!--mybatis逆向工程-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>

2.添加maven插件,在build的plugins中添加

<!--mybatis逆向工程-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>

3.插件的配置文件generatorConfig.xml,我在文件里面写了详细的注释

<?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> <!--
可以用于加载配置项或者配置文件
resource:配置资源加载地址,使用resource,从classpath开始找,比如com/myproject/generatorConfig.properties
url:配置资源加载地质,使用URL的方式,比如file:///C:/myfolder/generatorConfig.properties.
注意,两个属性只能选址一个
-->
<!--导入属性配置-->
<properties resource="datasource.properties"/> <!--指定特定数据库的jdbc驱动jar包的位置-->
<!-- 暂时不清楚怎么指定相对路径,只能指定maven仓库中的jar包 -->
<classPathEntry location="D:/repository/mysql/mysql-connector-java/8.0.12/mysql-connector-java-8.0.12.jar"/> <!--
context:生成一组对象的环境
id:必选,上下文id,用于在生成错误时提示
targetRuntime:
1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
-->
<context id="default" targetRuntime="MyBatis3"> <!--生成的bean是没有tostring方法的,所以如果要想生成tostring方法的话,需要在generatorConfig.xml中加上如下配置-->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<!-- 该元素最多可以配置1个,可以生成文件的注释 -->
<commentGenerator>
<!--阻止生成的注释包含时间戳,默认为false-->
<property name="suppressDate" value="true"/>
<!--阻止生成注释,默认为false-->
<property name="suppressAllComments" value="true"/>
<!--设置要使用的Java文件的编码-->
<property name="javaFileEncoding" value="UTF-8"/>
</commentGenerator> <!--jdbc的数据库连接,引入上述的配置文件datasource.properties的内容,这里直接写死也可以 -->
<jdbcConnection
driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection> <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver> <!-- Model模型生成器,用来生成数据库对应的实体类
targetPackage 指定生成的实体类 所在的包名
targetProject 指定在该项目下所在的路径
-->
<javaModelGenerator targetPackage="com.pdzx.entity" targetProject="D:/workspaces/pdzx-customer-microservice/pdzx-manage-system/src/main/java">
<!-- 是否允许子包,eg:fase路径com.pdzx.entity, true:com.pdzx.entity..[schemaName] -->
<property name="enableSubPackages" value="false"/>
<!-- 是否对model添加 构造函数 -->
<property name="constructorBased" value="false"/>
<!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
<property name="immutable" value="false"/>
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<!--如果设置为true就会生成类似这样 public void setUsername(String username) {this.username = username == null ? null : username.trim();}-->
<property name="trimStrings" value="false"/>
</javaModelGenerator> <!--mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件,就是用xml写SQL的方式 -->
<sqlMapGenerator targetPackage="com.pdzx.mapper" targetProject="D:/workspaces/pdzx-customer-microservice/pdzx-manage-system/src/main/java">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator> <!--
生成易于使用的针对Model对象和XML配置文件 的代码,即dao层接口文件
type="ANNOTATEDMAPPER",基于注解的Mapper接口,不会有对应的XML映射文件
type="MIXEDMAPPER",XML和注解的混合形式,(上面这种情况中的)SqlProvider注解方法会被XML替代
type="XMLMAPPER",所有的方法都在XML中,接口调用依赖XML文件。
-->
<!-- targetPackage:mapper接口dao生成的位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.pdzx.dao" targetProject="D:/workspaces/pdzx-customer-microservice/pdzx-manage-system/src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator> <!--
tableName为对应的数据库表
domainObjectName是要生成的实体类
enable*ByExample是否生成 example类 -->
<table tableName="b_template_useclient"
domainObjectName="TemplateUseclient"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- 上面的属性都可以使用子标签形式表示 -->
<!-- 是否使用真实字段名,设置为false将自动驼峰转换 -->
<property name="useActualColumnNames" value="false" />
</table> </context> </generatorConfiguration>

4.数据库配置文件datasource.properties

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://139.196.51.7:3306/pdafc?characterEncoding=utf8&useSSL=false&allowMultiQueries=true&nullCatalogMeansCurrent=true&tinyInt1isBit=false
jdbc.username=xxx
jdbc.password=xxx

注意两个问题的解决方案:

1. mybatis自动生成的代码只有insert()和insertSelective()

  解决方案:在jdbc url后增加下面代码即可

nullCatalogMeansCurrent=true

2.mybatis 自动生成代码对于tinyint 类型自动解析成BOOLEAN类型

  解决方案:对于tinyint 类型自动解析成BYTE类型  在jdbc.url后增加下面代码即可

 tinyInt1isBit=false

mybatis自动生成代码插件mybatis-generator使用流程(亲测可用)的更多相关文章

  1. mybatis 自动生成代码(mybatis generator)

    pom.xml 文件配置 引入 mybatis generator <properties> <mysql.connector.version>5.1.44</mysql ...

  2. Mybatis自动生成代码,MyBatis Generator

    这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...

  3. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

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

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

  5. Mybatis 自动生成代码,数据库postgresql

    最近做了一个项目,使用Mybatis自动生成代码,下面做一下总结,被以后参考: 一.提前准备: 1.工具类:mybatis-generator-core-1.3.2.jar 2.postgresql驱 ...

  6. mybatis-generator自动生成代码插件

    mybatis自动生成代码(实体类.Dao接口等)是很成熟的了,就是使用mybatis-generator插件. 它是一个开源的插件,使用maven构建最好,可以很方便的执行 插件官方简介: http ...

  7. springboot mybatis 自动生成代码(maven+IntelliJ IDEA)

    1.在pom文件中加入需要的依赖(mybatis-generator-core) 和 插件(mybatis-generator-maven-plugin) <dependency> < ...

  8. 自定义Mybatis自动生成代码规则

    前言 大家都清楚mybatis-generate-core 这个工程提供了获取表信息到生成model.dao.xml这三层代码的一个实现,但是这往往有一个痛点,比如需求来了,某个表需要增加字段,肯定需 ...

  9. MyBatis自动生成代码示例

    在项目中使用到mybatis时,都会选择自动生成实体类,Mapper,SqlMap这三个东东. 手头上在用的又不方便,找了下网上,其实有很多文章,但有些引用外部文件时不成功,也不方便,所以重新整理了下 ...

随机推荐

  1. RocketMQ启动

    下载RocketMQ解压启动 > unzip rocketmq-all-4.4.0-source-release.zip > cd rocketmq-all-4.4.0/ > mvn ...

  2. 【asp.net core 系列】13 Identity 身份验证入门

    0. 前言 通过前两篇我们实现了如何在Service层如何访问数据,以及如何运用简单的加密算法对数据加密.这一篇我们将探索如何实现asp.net core的身份验证. 1. 身份验证 asp.net ...

  3. 马士兵老师Java虚拟机调优

    该视频主要讲解的内容如下所示: 1.虚拟机的内存结构 1.每一个线程都有一个虚拟机栈,线程中每调用一个方法都会开启一个栈帧,栈帧里面保存方法中的局部变量. 2.方法区在java8以后改名为永久区域pe ...

  4. SSM中保存数据出现415错误

    服务器415错误 ssm框架的controller jsp页面 问题:页面出现415错误 原因:请求和响应类型不一致 分析: 先排除以下基本的环境配置 1.URL路径对应好,视图解析器配置好,cont ...

  5. SpringSceurity(5)---短信验证码登陆功能

    SpringSceurity(5)---短信验证码登陆功能 有关SpringSceurity系列之前有写文章 1.SpringSecurity(1)---认证+授权代码实现 2.SpringSecur ...

  6. 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍

    相信很多朋友对于逻辑式编程语言,都有一种最熟悉的陌生人的感觉.一方面,平时在书籍.在资讯网站,偶尔能看到一些吹嘘逻辑式编程的话语.但另一方面,也没见过周围有人真正用到它(除了SQL). 遥记当时看&l ...

  7. MVC+EFCore 项目实战-数仓管理系统1

    项目背景及需求说明 这是一个数据管理"工具类"的系统,计划有三个核心功能: 1.通过界面配置相关连接字符串,查询数据库的表数据. 2.配置相关模板,生成数据库表. 可以界面填报或通 ...

  8. js进度条

    第一步//====================.wrap,.circle,.percent{                  position: absolute;                ...

  9. 使用phpQuery进行采集数据,模拟curl提升访问速度

    使用php采集网页数据一般有多种方法,有时候会使用正则去采集页面,但是当我们需要采集的页面大并且多的话,会严重的浪费我们的cpu,这时候我们可以使用phpQuer来进行采集,不知道phpQuery的童 ...

  10. 如何配置webpack让浏览器自动补全前缀

    一.postcss-loader有什么用? PostCSS 本身是一个功能比较单一的工具.它提供了一种方式用 JavaScript 代码来处理 CSS.它负责把 CSS 代码解析成抽象语法树结构(Ab ...