官网地址

http://mybatis.org/generator/

下载地址

http://central.maven.org/maven2/org/mybatis/generator/mybatis-generator-core/

3Mybatis Generator 介绍

MyBatis Generator(MBG)是 MyBatis 和 iBATIS 的代码生成工具。它可以为所有 MyBatis版本以及 iBATIS 版本 2.2.0 及以上自动生成代码。

它会逆向查找一张或多张数据库表的信息,生成操作数据库表所需要的组件。基本上省去了自已手动创建实体类以及配置文件的麻烦。

MBG 只是对单表的增删改查(CRUD (Create, Retrieve, Update, Delete))生成了大部分的代码,对于像连接查询或者存储过程之类的,还是需要手动编写 sql 和实体类的。

MBG 会生成对应于表结构的 java POJO 类。包括一个支持动态查询、更新和删除的类。

MBG 为单表的增删改查生成了配置文件和映射文件。生成的 SQL 语句包括:

insert

update by primary key

update by example (使用动态 where 子句)

delete by primary key

delete by example (使用动态 where 子句)

select by primary key

select by example (使用动态 where 子句)

count by example

根据表结构的不同,这些语句会有一些变化,比如有的表没有主键,则 MBG 不会生成根据主键更新表的记录的方法。

Mybatis Generator 的使用

建立 MybatisGenerator 项目

建立 Java 项目即可

添加 jar 包支持

建立配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <context id="testTables" targetRuntime="MyBatis3">
  7. <commentGenerator>
  8. <!-- 是否去除自动生成的注释 true:是 : false:否 -->
  9. <property name="suppressAllComments" value="true" />
  10. </commentGenerator>
  11. <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
  12. <jdbcConnection driverClass="com.mysql.jdbc.Driver"
  13. connectionURL="jdbc:mysql://192.168.30.10:3306/ego" userId="root"
  14. password="root">
  15. </jdbcConnection>
  16. <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
  17. NUMERIC 类型解析为java.math.BigDecimal -->
  18. <javaTypeResolver>
  19. <property name="forceBigDecimals" value="false" />
  20. </javaTypeResolver>
  21. <!-- targetProject:生成POJO类的位置 -->
  22. <javaModelGenerator targetPackage="com.bjsxt.ego.rpc.pojo"
  23. targetProject=".\src">
  24. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  25. <property name="enableSubPackages" value="false" />
  26. <!-- 从数据库返回的值被清理前后的空格 -->
  27. <property name="trimStrings" value="true" />
  28. </javaModelGenerator>
  29. <!-- targetProject:mapper映射文件生成的位置 -->
  30. <sqlMapGenerator targetPackage="com.bjsxt.ego.rpc.mapper"
  31. targetProject=".\src">
  32. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  33. <property name="enableSubPackages" value="false" />
  34. </sqlMapGenerator>
  35. <!-- targetPackage:mapper接口生成的位置 -->
  36. <javaClientGenerator type="XMLMAPPER"
  37. targetPackage="com.bjsxt.ego.rpc.mapper"
  38. targetProject=".\src">
  39. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  40. <property name="enableSubPackages" value="false" />
  41. </javaClientGenerator>
  42. <!-- 指定数据库表 -->
  43. <table schema="" tableName="tb_content"></table>
  44. <table schema="" tableName="tb_content_category"></table>
  45. <table schema="" tableName="tb_item"></table>
  46. <table schema="" tableName="tb_item_cat"></table>
  47. <table schema="" tableName="tb_item_desc"></table>
  48. <table schema="" tableName="tb_item_param"></table>
  49. <table schema="" tableName="tb_item_param_item"></table>
  50. <table schema="" tableName="tb_order"></table>
  51. <table schema="" tableName="tb_order_item"></table>
  52. <table schema="" tableName="tb_order_shipping"></table>
  53. <table schema="" tableName="tb_user"></table>
  54. </context>
  55. </generatorConfiguration>

建立项目启动类

  1. package com.bjsxt.mybatis.test;
  2. import java.io.File;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import org.mybatis.generator.api.MyBatisGenerator;
  6. import org.mybatis.generator.config.Configuration;
  7. import org.mybatis.generator.config.xml.ConfigurationParser;
  8. import org.mybatis.generator.internal.DefaultShellCallback;
  9. public class MybatisGeneratorTest {
  10. public void generator() throws Exception {
  11. List<String>warnings = new ArrayList<String>();
  12. boolean overwrite = true;
  13. // 指定 逆向工程配置文件
  14. File configFile = new File(System.getProperty("user.dir")+"/src/config.xml");
  15. ConfigurationParser cp = new ConfigurationParser(warnings);
  16. Configuration config = cp.parseConfiguration(configFile);
  17. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  18. MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
  19. myBatisGenerator.generate(null);
  20. }
  21. public static void main(String[] args) throws Exception {
  22. try {
  23. MybatisGeneratorTest generatorSqlmap = new MybatisGeneratorTest();
  24. generatorSqlmap.generator();
  25. } catch (Exception e) {
  26. e.printStackTrace();
  27. }
  28. }
  29. }

MyBatis之MyBatis Generator逆向工程的更多相关文章

  1. 【mybatis】mybaits generator 逆向工程的使用

    mybatis逆向工程官方网站:http://www.mybatis.org/generator/quickstart.html 准备xml文件.如下generator.xml全部内容 <?xm ...

  2. SpringBoot+Mybatis+Generator 逆向工程使用(二)

    Mybatis-Genarator 逆向工程使用 个人开发环境 java环境:Jdk1.8.0_60 编译器:IntelliJ IDEA 2017.1.4 mysql驱动:mysql-connecto ...

  3. Mybatis Generator逆向工程的使用

    一.在 idea 中使用 mybatis generator 逆向工程 1.在IDEA上创建maven工程. 2.在pom.xml中配置MyBatis逆向工程插件 <!--MyBatis自动生成 ...

  4. Mybatis(七) mybatis的逆向工程的配置详解

    还是觉得看书学习有意思~嘿嘿.今天把mybatis给结束掉. --WH 一.什么是逆向工程? 简单点说,就是通过数据库中的单表,自动生成java代码. Mybatis官方提供了逆向工程,可以针对单表自 ...

  5. Mybatis和Spring整合&逆向工程

    Mybatis和Spring整合&逆向工程Mybatis和Spring整合mybatis整合Spring的思路目的就是将在SqlMapConfig.xml中的配置移植到Spring的appli ...

  6. mybatis框架整合及逆向工程

    mybatis框架整合及逆向工程 一.三大框架整合 ​ 整合SSM框架 1.导入pom文件 1.导入spring的pom依赖 <?xml version="1.0" enco ...

  7. Hello Mybatis 02 mybatis generator

    接着上一篇文章通过Mybatis完成了一个User的CRUD的功能之后,这篇开始还需要建立一个Blog类,这样就可以模拟一个简单的微博平台的数据库了. 数据库准备 首先我们,还是需要在数据库中新建一个 ...

  8. springboot集成mybatis及mybatis generator工具使用

    原文链接 前言mybatis是一个半自动化的orm框架,所谓半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernat ...

  9. springboot入门(三)-- springboot集成mybatis及mybatis generator工具使用

    前言 mybatis是一个半自动化的orm框架,所谓半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完 ...

  10. spring boot集成mybatis(3) - mybatis generator 配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

随机推荐

  1. 009-2010网络最热的 嵌入式学习|ARM|Linux|wince|ucos|经典资料与实例分析

    前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到21ic和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友 ...

  2. Jmeter与压测相关概念

    相关概念 RT(response time) 什么是RT? RT就是指系统在接收到请求和做出相应这段时间跨度 但是值得一提的是RT的值越高,并不真的就能说明我们的系统的吞吐量就很高, 比如说,如果存在 ...

  3. 安装&卸载Windows服务

    使用.NET Framework的工具InstallUtil.exe. 安装服务 C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.e ...

  4. 大数据HDFS相关的一些运维题

    1.在 HDFS 文件系统的根目录下创建递归目录“1daoyun/file”,将附件中的BigDataSkills.txt 文件,上传到 1daoyun/file 目录中,使用相关命令查看文件系统中 ...

  5. C++中对C的扩展学习新增语法——namespace

    NAMESPACE语法 namespace主要解决了命名冲突的问题,语法如下 Namespace注意事项: namespace中可以定义常量.变量.函数.结构体.枚举.类等. namespace 只能 ...

  6. Spark性能优化指南——基础篇(转)

    [转]Spark性能优化指南——基础篇 http://mp.weixin.qq.com/s?__biz=MjM5NDMwNjMzNA==&mid=2651805828&idx=1&am ...

  7. spring源码1

    1.beans核心类 1.DefaultListableBeanFactory xmlBeanFactory xmlBeanFactory继承自DefaultListableBeanFactory,D ...

  8. mysql出现ERROR 1819 (HY000)的解决方法

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements, 出现这个问题怎么办? 为了加强安 ...

  9. ES6学习 let const

    1.前言 发现网易云笔记 单纯的记笔记没什么意思,所以今天来博客园写学习感受了,毕设做了休息时间就来写写新学的知识 哈哈哈 !! 2.ES6 就是JavaScript 语言的下一代标准,2015年6月 ...

  10. [FPGA]Verilog实现JK触发器组成的8421BCD码十进制计数器

    目录 概述 电路分析 代码实现 参考文献 概述 本文以异步时序计数器为例,用Verilog实现以\(JK\)触发器组成的8421BCD码十进制异步计数器,并用ModelSim软件进行仿真验证. 电路分 ...