最近H2数据库越用越觉得方便,在不同办公处无缝继续demo的感觉就是爽。

 
今天接上一篇Springboot简洁整合mybatis,补上sts(即eclipse)使用mybatis generator逆向生成实体和SQL映射文件,提高开发效率。

三种方式

  • 官方Java程序方
  • Maven插件方式(推荐)
  • sts/eclipse插件方式

直男君梳理了官方文档和网友博客,把最靠谱的上面三种都试了一遍,最终结果是Maven插件方式最为简单有效。

1)官方Java程序方式

分为两种,直接执行jar包方式:

java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite

和 编写可执行Java类方式(官网截图):

 
这种方式的好处是不依赖第三方环境,仅需要mybatis的jar包就OK,通用化,缺点就是麻!烦!。

2)Maven插件方式

简单有效,下面就会细说具体步骤。

3)sts/eclipse插件方式

安装插件嘛~讲道理是最简单的方式..但是直男君安装好了后各种问题。

三种方式在官方网站(http://www.mybatis.org/generator/quickstart.html)上都有介绍,可作细究参考,比如完整的配置文件项。

 
PS:不论哪种方式,都需要一个核心配置文件 generatorConfig.xml

Maven插件方式步骤

1)修改数据库连接信息

这里说明一点,直男君数据源用的是H2,发现H2内存模式下,逆向生成会遇阻(连接限制问题),所以把H2内存模式改为文件模式。改动很简单,将H2连接的url改为实际路径就好,其他不用变,demo应用启动下(为了生成初始化库信息),这样mybatis逆向工程就可以连接到了(JDBC) 。PS:使用MySQL的话,不用管这步。

修改application.properties文件配置:

#配置 h2 数据源
#spring.datasource.url=jdbc:h2:mem:test
spring.datasource.url=jdbc:h2:~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=123456
spring.datasource.schema=classpath:h2sql/schema.sql
spring.datasource.data=classpath:h2sql/data.sql
spring.h2.console.enabled=true
#localhost:8080/demo/h2-console
spring.h2.console.path=/h2-console

说明:~/test 配置后,以win系统为例,生成的H2数据库文件路径:C:\Users\Richard\test.mv.db,~ 代表用户家目录。

2).pom文件中添加插件

<!-- maven build.. >> mybatis-generator:generate -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>

3)添加 generatorConfig.xml(src/main/resources)

贴上本次demo的完整配置模版(注意包路径):

<?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">
<!-- mybatis-maven插件使用快捷参考: https://blog.csdn.net/MissWwg/article/details/79159590-->
<!-- 官方参考: http://www.mybatis.org/generator/configreference/xmlconfig.html-->
<!-- 配置完整说明:https://blog.csdn.net/pk490525/article/details/16819307 -->
<generatorConfiguration>
<properties resource="jdbc.properties" />
<!-- 驱动jar包 -->
<classPathEntry location="D:\maven-repo\com\h2database\h2\1.4.199\h2-1.4.199.jar" />
<!-- 一个数据库一个 context -->
<context id="myh2db" targetRuntime="MyBatis3">
<!-- 生成注释配置 -->
<commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- JDBC连接配置 -->
<jdbcConnection
driverClass="${h2.driver}"
connectionURL="${h2.url}"
userId="${h2.username}"
password="${h2.passwd}">
</jdbcConnection>
<!-- 类型转换 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 实体bean 逆向生成 -->
<javaModelGenerator targetPackage="com.demo.bean.entity" targetProject="src/main/java">
<property name="trimStrings" value="false" />
<property name="enableSubPackages" value="false" />
</javaModelGenerator>
<!-- sqlmap.xml 逆向生成 -->
<sqlMapGenerator targetPackage="sqlmap" targetProject="src/main/resources">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 客户端即 Mapper接口 逆向生成 type=[XMLMAPPER, MIXEDMAPPER, ANNOTATEDMAPPER]-->
<javaClientGenerator targetPackage="com.demo.mapper" targetProject="src/main/java"
type="MIXEDMAPPER">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 目标表配置 schema为啥不能加 -->
<table tableName="tb_fake" domainObjectName="Fake"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>

4)新建配置所需的包和项目结构

 

5)保存配置,检查数据库表和项目结构无误后,执行插件。

右键.pom >> Run As.. >> Maven Build... >>在 Goals 中写入 mybatis-generator:generate 保存运行。

 

成功运行日志:

 

此时刷新项目,可以看到该有的都有了。

 

检查生成的文件是否合胃口,觉得不完美的话适当调整配置覆盖生成即可。

Springboot学习与mybatis逆向生成工具的更多相关文章

  1. 「小程序JAVA实战」Springboot版mybatis逆向生成工具(32)

    转自:https://idig8.com/2018/08/29/xiaochengxujavashizhanspringbootbanmybatisnixiangshengchenggongju32/ ...

  2. 【SSM 4】Mybatis逆向生成工具

    在上一篇博客中说到,Mybatis是灵活的SQL语句应用,不想Hibernate一样有其封装好的方法,那么,当我们用Mybatis的时候(Hibernate),我们都需要编写其实体类,和配置文件.本篇 ...

  3. myBatis逆向生成及使用

    引入数据库驱动 <!-- mybatis逆向生成包 --><dependency> <groupId>org.mybatis.generator</group ...

  4. Mybatis逆向生成

    在已经有了数据库的表的时候,为了方便起见,我们可以逆向生成javabean,xml,dao接口等,当然,下载mybaits-generation的工具,我这里用的是eclipse插件,然后准备一 个x ...

  5. Mybatis逆向生成使用扩展类

    1.背景介绍 用的mybatis自动生成的插件,然而每次更改数据库的时候重新生成需要替换原有的mapper.xml文件,都要把之前业务相关的sql重新写一遍,感觉十分麻烦,就想着把自动生成的作为一个基 ...

  6. 一步步学Mybatis-告别繁琐的配置之Mybatis配置文件生成工具 (7)

    今年是2013年的杀青之日,前几天由于比较忙,没有及时更新本篇的最后一篇东西,前六篇中我们主要都是采用手动配置相关的Mybatis映射文件与相应的接口类与实体类.当然如果在真正的使用过程中,由于业务的 ...

  7. Mybatis逆向生成代碼

    Idea 单模块 1.在pom.xml中添加依赖 <build> <plugins> <plugin> <groupId>org.mybatis.gen ...

  8. Mybatis Generator生成工具配置文件详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  9. Mybatis逆向生成Mapper文件

    本文参考博客 http://blog.csdn.net/for_my_life/article/details/51228098 1. 在resources根目录下添加generator.proper ...

随机推荐

  1. manjaro配置记录

    一.换源 官方镜像源(包括 core, extra, community, multilib ) sudo pacman-mirrors -i -c China -m rank //更新镜像排名 su ...

  2. http的无状态

    无状态协议是指协议对务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大.另一方面,在服务器不需要先前信息时它的应答就较快. Http协议不 ...

  3. 【Android】drawable VS mipmap

    Android Studio 创建工程后默认的资源文件夹如下图所示: 一直有些疑惑的是 mipmap 和 drawable 文件夹有什么区别,以及是否还需要创建 drawable-xhdpi, dra ...

  4. ProcessBuilder waitFor 调用外部应用

    小程序项目最初使用ffmpeg转换微信录音文件为wav格式,再交给阿里云asr识别成文字.视频音频转换最常用是ffmpeg. 1 ffmpeg -i a.mp3 b.wav 相关文章: 小程序实现语音 ...

  5. 记一次paramiko远程连接遇到的坑

    背景:工作中遇到了一个问题,需要用到windows向windows连接(文件传发)以及,linux向windows连接(文件传发)的需求. 自然而然会考虑到用paramiko,然而paramiko我用 ...

  6. oracle 断电启动失败:ORA-00600: internal error code, arguments

    转载地址: http://www.2cto.com/database/201312/261602.html 由于服务器断电,启动 oracle 时报 ORA-00600 错误 查看 oracle tr ...

  7. SpringBoot第二天

    一,SpringBoot 整合 jsp 技术 1,创建项目 2,修改 pom 文件,添加坐标 <project xmlns="http://maven.apache.org/POM/4 ...

  8. 聊聊目标管理之 OKR

    这篇文章我们不谈技术,聊点轻松的,那聊什么呢?聊一下最近很火的目标管理 OKR.不知道小伙伴你们的公司什么情况,我的公司今年开始推行 OKR,用了大半年的时间,感觉效果还不错,上周六又参加了一天的复盘 ...

  9. 理解MySQL(一)--MySQL介绍

    一.Mysql逻辑架构: 1. 第一层:服务器层的服务,连接\线程处理. 2. 第二层:查询执行引擎,MySQL的核心服务功能,包括查询解析.分析.优化和缓存,所有跨存储引擎的功能都在这一层实现. 3 ...

  10. 【模板】珂朵莉树(ODT)(Codeforces 896C Willem, Chtholly and Seniorious)

    题意简述 维护一个数列,支持区间加,区间赋值,区间求第k小,区间求幂和 数据随机 题解思路 ODT是一种基于std::set的暴力数据结构. 每个节点对应一段区间,该区间内的数都相等. 核心操作spl ...