有三个方法可以解决所有的问题:接受,改变,离开。不能接受那就改变,不能改变,那就离开。


【何为逆向工程?】

  众 所 周 知 ,正向工程就是通过JAVA类的设置来生成对应的数据库表。

  MyBatis逆向工程,就是使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件(单表增删改查)。

  mybatis需要编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),提高工作效率。

【使用工具】

  IntelliJ IDEA 2018.3 

【官网】

  1. https://mybatis.org/mybatis-3

【使用步骤】

(1)、添加POM依赖

  1. 1 <dependencies>
  2. 2 <!--逆向工程需要使用到mybatis-generator-core-->
  3. 3 <dependency>
  4. 4 <groupId>org.mybatis.generator</groupId>
  5. 5 <artifactId>mybatis-generator-core</artifactId>
  6. 6 <version>1.3.7</version>
  7. 7 </dependency>
  8. 8 <!--本次操作中使用的mybatis-->
  9. 9 <dependency>
  10. 10 <groupId>org.mybatis</groupId>
  11. 11 <artifactId>mybatis</artifactId>
  12. 12 <version>3.5.6</version>
  13. 13 </dependency>
  14. 14 <!--连接数据库所需的依赖-->
  15. 15 <dependency>
  16. 16 <groupId>mysql</groupId>
  17. 17 <artifactId>mysql-connector-java</artifactId>
  18. 18 <version>5.1.48</version>
  19. 19 </dependency>
  20. 20 </dependencies>

  

(2)、新增generatorConfig.xml文件。配置数据库连接、指定生成的文件和位置,以及所要生成的数据库表

  

     generatorConfig.xml文件:

  1. 1 <?xml version="1.0" encoding="UTF-8"?>
  2. 2 <!DOCTYPE generatorConfiguration
  3. 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. 5
  6. 6 <generatorConfiguration>
  7. 7 <properties resource="database.properties"/>
  8. 8 <context id="testTables" targetRuntime="MyBatis3">
  9. 9 <commentGenerator>
  10. 10 <!-- 是否去除自动生成的注释 true:是 false:否 -->
  11. 11 <property name="suppressAllComments" value="true" />
  12. 12 </commentGenerator>
  13. 13 <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
  14. 14 <jdbcConnection driverClass="${driver}"
  15. 15 connectionURL="${url}" userId="${username}"
  16. 16 password="${password}">
  17. 17 </jdbcConnection>
  18. 18 <!-- 默认false,把JDBC DECIMAL NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
  19. 19 NUMERIC 类型解析为java.math.BigDecimal -->
  20. 20 <javaTypeResolver>
  21. 21 <property name="forceBigDecimals" value="false" />
  22. 22 </javaTypeResolver>
  23. 23
  24. 24 <!-- targetProject:生成PO类的位置 -->
  25. 25 <javaModelGenerator targetPackage="com.papercy.smbms.pojo"
  26. 26 targetProject=".\src\main\java">
  27. 27 <!-- enableSubPackages:是否让schema作为包的后缀 -->
  28. 28 <property name="enableSubPackages" value="false" />
  29. 29 <!-- 从数据库返回的值被清理前后的空格 -->
  30. 30 <property name="trimStrings" value="true" />
  31. 31 </javaModelGenerator>
  32. 32 <!-- targetProject:mapper映射文件生成的位置 -->
  33. 33 <sqlMapGenerator targetPackage="com.papercy.smbms.mapper"
  34. 34 targetProject=".\src\main\java">
  35. 35 <!-- enableSubPackages:是否让schema作为包的后缀 -->
  36. 36 <property name="enableSubPackages" value="false" />
  37. 37 </sqlMapGenerator>
  38. 38 <!-- targetPackagemapper接口生成的位置 -->
  39. 39 <javaClientGenerator type="XMLMAPPER"
  40. 40 targetPackage="com.papercy.smbms.mapper" targetProject=".\src\main\java">
  41. 41 <!-- enableSubPackages:是否让schema作为包的后缀 -->
  42. 42 <property name="enableSubPackages" value="false" />
  43. 43 </javaClientGenerator>
  44. 44 <!-- 指定数据库表 -->
  45. 45 <table schema="" tableName="smbms_user" domainObjectName="User"></table>
  46. 46 <table schema="" tableName="smbms_role" domainObjectName="Role"></table>
  47. 47 <table schema="" tableName="smbms_provider" domainObjectName="Provider"></table>
  48. 48 <table schema="" tableName="smbms_bill" domainObjectName="Bill"></table>
  49. 49 <table schema="" tableName="smbms_address" domainObjectName="Address"></table>
  50. 50
  51. 51 </context>
  52. 52 </generatorConfiguration>

(3)、properties 文件

  1. 1 driver=com.mysql.jdbc.Driver
  2. 2 url=jdbc:mysql://localhost/smbms?useUnicode=true&characterEncoding=UTF-8
  3. 3 username=root
  4. 4 password=123456

(4)、添加主程序运行项目

    GeneratorSqlmap.java 文件:

  1. 1 import org.mybatis.generator.api.MyBatisGenerator;
  2. 2 import org.mybatis.generator.config.Configuration;
  3. 3 import org.mybatis.generator.config.xml.ConfigurationParser;
  4. 4 import org.mybatis.generator.internal.DefaultShellCallback;
  5. 5
  6. 6 import java.io.File;
  7. 7 import java.util.ArrayList;
  8. 8 import java.util.List;
  9. 9
  10. 10 public class GeneratorSqlmap {
  11. 11
  12. 12 public void generator() throws Exception {
  13. 13
  14. 14 List<String> warnings = new ArrayList<String>();
  15. 15 boolean overwrite = true;
  16. 16 // 指定 逆向工程配置文件(绝对路径)
  17. 17 File configFile = new File("C:\\PapercyFile\\IDEADemo\\mbatis10\\src\\main\\resources\\generatorConfig.xml");
  18. 18 ConfigurationParser cp = new ConfigurationParser(warnings);
  19. 19 Configuration config = cp.parseConfiguration(configFile);
  20. 20 DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  21. 21 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
  22. 22 myBatisGenerator.generate(null);
  23. 23
  24. 24 }
  25. 25
  26. 26 public static void main(String[] args) throws Exception {
  27. 27 try {
  28. 28 GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
  29. 29 generatorSqlmap.generator();
  30. 30 } catch (Exception e) {
  31. 31 e.printStackTrace();
  32. 32 }
  33. 33
  34. 34 }
  35. 35
  36. 36 }

(5)、可能xml文件有不识别现象,在 POM 中添加如下代码。

  1. 1 <build>
  2. 2 <resources>
  3. 3 <resource>
  4. 4 <directory>${basedir}/src/main/java</directory>
  5. 5 <includes>
  6. 6 <include>**/*.xml</include>
  7. 7 </includes>
  8. 8 </resource>
  9. 9 </resources>
  10. 10 </build>

(6)、最后执行主程序GeneratorSqlmap,得到结果如图所示,pojo,mapper映射文件:

【结束语】

  至此,Mybatis 逆向工程使用 就告一段落了,本篇博客只是使用主程序运行来生成逆向工程,

还有 使用插件  从而运行逆向工程的。 简单介绍下:

  mybatis-generator-core :进入https://mvnrepository.com/搜索 MyBatis ,找到 MyBatis Generator Core

  如下图 :

从而使用此插件实现逆向工程。

  推荐一篇比较详细的使用插件实现逆向工程的(博客):

  1. https://www.cnblogs.com/xqz0618/p/javaweb05.html

  我是肥肥也,喜欢就点点【关注】,不喜欢也没关系,喜欢我的人多了去了,又不差你一个~

See you 

 

Mybatis 逆向工程使用(Day_17)的更多相关文章

  1. mybatis0212 mybatis逆向工程 (MyBatis Generator)

    1mybatis逆向工程 (MyBatis Generator) .1什么是mybatis的逆向工程 mybatis官方为了提高开发效率,提高自动对单表生成sql,包括生成 :mapper.xml.m ...

  2. 【JAVA - SSM】之MyBatis逆向工程的使用

    MyBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便实用.下面介绍一下逆向工程的使用方法. 使用逆向工程,我们最好是新建 ...

  3. Mybatis 逆向工程

    Mybatis逆向工程: 推荐用Java和XML Configuration的方式生成逆向文件 Java类: package generation; import java.io.File; impo ...

  4. mybatis逆向工程

    一.背景 在实际开发中我们会自己去写mapper映射文件,接口,数据库表对应的实体类,如果需求任务比较少,咱们还可以慢慢的一个一个去写,但是这是不现实的,因为在工作中我们的任务是很多的,这时mybat ...

  5. JAVAEE——Mybatis第二天:输入和输出映射、动态sql、关联查询、Mybatis整合spring、Mybatis逆向工程

    1. 学习计划 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If标签 b) Where标签 c) Sql片段 d) Foreach标签 3.关联查询 a) 一对 ...

  6. mybatis框架(7)---mybatis逆向工程

    mybatis逆向工程 ​ 逆向工程的目的就是缩减了我们的开发时间.所谓mybatis逆向工程,就是mybatis会根据我们设计好的数据表,自动生成pojo.mapper以及mapper.xml. 接 ...

  7. 学习笔记01(mybatis逆向工程)

    今天来看看一个常用的小功能,就是mybatis的逆向工程.(数据库是mysql) 什么是逆向工程呢?看名字就知道反方向的一个什么工程! 其实啊,如果是平常我们自己学习实践一些小项目的时候,应该是先瞎写 ...

  8. mybatis逆向工程的注意事项,以及数据库表

    1.选择性更新,如果有新参数就更换成新参数,如果参数是null就不更新,还是原来的参数 2.mybatis使用逆向工程,数据库建表的字段user_id必须用下滑线隔开,这样生成的对象private L ...

  9. IDEA Maven项目的Mybatis逆向工程

    IDEA Maven项目的Mybatis逆向工程 1.配置.pom 如果是在多模块开发下,该文件逆向工程要生成的那个模块下的pom文件. <build> <plugins> & ...

随机推荐

  1. Tony老师带你来看Java设计模式:代理模式

    目录 定义 作用 意图 主要解决问题 优缺点 与装饰者模式的区别 结构 从Tony老师来看实现方式 静态代理 动态代理 JDK动态代理的实现 cglib动态代理的实现 定义 为其他对象提供一种代理来控 ...

  2. 我与Git的那些破事(上)--代码管理

    1. Git是什么? 作为一名程序猿,我相信大家都或多或少接触过git--分布式版本控制软件. 有人说,它是目前世界上最先进的分布式版本控制系统,我想说,是否最先进不知道,但确实好用,实用. 作为一款 ...

  3. python进阶(15)多线程与多进程效率测试

    前言 在Python中,计算密集型任务适用于多进程,IO密集型任务适用于多线程   正常来讲,多线程要比多进程效率更高,因为进程间的切换需要的资源和开销更大,而线程相对更小,但是我们使用的Python ...

  4. java面试一日一题:java的类加载过程

    问题:请讲下java的类加载机制及过程 分析:该问题主要考察对JVM加载类的机制及过程,延申出的问题是为什么使用双亲委托模型,有什么办法可以打破双亲委托吗: 回答要点: 主要从以下几点去考虑, 1.类 ...

  5. kubernetes addons之node-problem-detector

    node-problem-detector简介 node-problem-detector的作用是收集k8s集群管理中节点问题,并将其报告给apiserver.它是在每个节点上运行的守护程序.node ...

  6. 2020北航OO第一单元总结

    前言 学习面向对象这门课程的后的第一单元作业,主线是多项式求导,三次作业层层推进,由单一的幂函数求导,到幂函数和三角函数的复合求导,最后再到两种函数的嵌套求导,由两个类到重构后的十几个类,我逐渐对面向 ...

  7. Tomcat配置及网站创建教程(IDEA)

    Tomcat在本机的配置 解压 解压Tomcat压缩包后就算安装完成,解压完成生成文件夹 配置环境变量 1.配置JAVA_HOME 控制面板--系统--查看高级系统设置--环境变量--系统环境变量 新 ...

  8. ESXI的使用

    一台物理裸机服务器装上了ESXI就有了灵魂 vmware esxi的安装 多网段站群服务器 参考教程 安装ESXi VMware ESXI 6.5安装教程 物理机下安装 VMware ESXi 6.7 ...

  9. C/C++ 导入表与IAT内存修正

    本章教程中,使用的工具是上次制作的PE结构解析器,如果还不会使用请先看前一篇文章中对该工具的介绍,本章节内容主要复习导入表结构的基础知识点,并通过前面编写的一些小案例,实现对内存的转储与导入表的脱壳修 ...

  10. IIS7.5配置对PHP的支持

    以下环境是 Windows server2008R2 IIS7.5 一般情况下,windows server系统默认是仅支持IIS+asp 或 IIS+aspx 的 搭配的,但是有时候我们的网站程序是 ...