逆向工程简介:

mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。

(注意:Mybatis逆向工程生成的Mapper所进行的操作都是针对单表的)

下载逆向工程:

 
 

逆向工程的使用

运行逆向工程(摘自官网):

工程结构:

poem.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6.  
  7. <groupId>com.itheima</groupId>
  8. <artifactId>Day47_mybatis_generator</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10.  
  11. <dependencies>
  12. <dependency>
  13. <groupId>org.mybatis</groupId>
  14. <artifactId>mybatis</artifactId>
  15. <version>3.4.5</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>mysql</groupId>
  19. <artifactId>mysql-connector-java</artifactId>
  20. <version>5.1.6</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>junit</groupId>
  24. <artifactId>junit</artifactId>
  25. <version>4.12</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>log4j</groupId>
  29. <artifactId>log4j</artifactId>
  30. <version>1.2.16</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.mybatis.generator</groupId>
  34. <artifactId>mybatis-generator-core</artifactId>
  35. <version>1.3.2</version>
  36. </dependency>
  37. </dependencies>
  38.  
  39. </project>

generatorConfig.xml

  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.  
  6. <generatorConfiguration>
  7. <context id="testTables" targetRuntime="MyBatis3">
  8.  
  9. <commentGenerator>
  10. <!-- 是否去除自动生成的注释 true:是 : false:否 -->
  11. <property name="suppressAllComments" value="true" />
  12. </commentGenerator>
  13.  
  14. <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
  15. <jdbcConnection driverClass="com.mysql.jdbc.Driver"
  16. connectionURL="jdbc:mysql://localhost:3306/mybatisdb" userId="root"
  17. password="root">
  18. </jdbcConnection>
  19.  
  20. <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
  21. connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
  22. userId="yycg"
  23. password="yycg">
  24. </jdbcConnection> -->
  25.  
  26. <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
  27. NUMERIC 类型解析为java.math.BigDecimal -->
  28. <javaTypeResolver>
  29. <property name="forceBigDecimals" value="false" />
  30. </javaTypeResolver>
  31.  
  32. <!-- targetProject:生成PO类的位置 -->
  33. <javaModelGenerator targetPackage="com.itheima.domain"
  34. targetProject=".\src\main\java">
  35. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  36. <property name="enableSubPackages" value="false" />
  37. <!-- 从数据库返回的值被清理前后的空格 -->
  38. <property name="trimStrings" value="true" />
  39. </javaModelGenerator>
  40.  
  41. <!-- targetProject:mapper映射文件生成的位置 -->
  42. <sqlMapGenerator targetPackage="com.itheima.mapper"
  43. targetProject=".\src\main\resources">
  44. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  45. <property name="enableSubPackages" value="false" />
  46. </sqlMapGenerator>
  47.  
  48. <!-- targetPackage:mapper接口生成的位置 -->
  49. <javaClientGenerator type="XMLMAPPER"
  50. targetPackage="com.itheima.mapper"
  51. targetProject=".\src\main\java">
  52. <!-- enableSubPackages:是否让schema作为包的后缀 -->
  53. <property name="enableSubPackages" value="false" />
  54. </javaClientGenerator>
  55.  
  56. <!-- 指定数据库表 -->
  57. <table schema="" tableName="user"></table>
  58. <table schema="" tableName="user_role"></table>
  59. <table schema="" tableName="role"></table>
  60. <table schema="" tableName="account"></table>
  61.  
  62. <!-- 有些表的字段需要指定java类型
  63. <table schema="" tableName="">
  64. <columnOverride column="" javaType="" />
  65. </table> -->
  66. </context>
  67. </generatorConfiguration>

注意:配置文件需要修改的内容:

  • 数据库驱动、地址、用户名、密码
  • POJO类、mapper接口、mapper映射文件生成的位置
  • 指定数据表

GeneratorSqlmap

  1. /**
  2. * @Author: Mr.Elliot
  3. * @Company: 东风科技
  4. * @Date 2018-11-27 14:17
  5. */
  6.  
  7. import java.io.File;
  8. import java.io.IOException;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11.  
  12. import org.mybatis.generator.api.MyBatisGenerator;
  13. import org.mybatis.generator.config.Configuration;
  14. import org.mybatis.generator.config.xml.ConfigurationParser;
  15. import org.mybatis.generator.exception.XMLParserException;
  16. import org.mybatis.generator.internal.DefaultShellCallback;
  17.  
  18. public class GeneratorSqlmap {
  19.  
  20. public void generator() throws Exception{
  21.  
  22. List<String> warnings = new ArrayList<String>();
  23. boolean overwrite = true;
  24. File configFile = new File("generatorConfig.xml");
  25. ConfigurationParser cp = new ConfigurationParser(warnings);
  26. Configuration config = cp.parseConfiguration(configFile);
  27. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  28. MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
  29. callback, warnings);
  30. myBatisGenerator.generate(null);
  31.  
  32. }
  33. public static void main(String[] args) throws Exception {
  34. try {
  35. GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
  36. generatorSqlmap.generator();
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. }
  40.  
  41. }
  42.  
  43. }

配置完成之后运行GeneratorSqlmap.java中的main方法就会生成对应数据表的代码,生成后记得右键项目名刷新。如果需要再次生成,一定要记得先把原来生成的删除。

 
生成的代码:

运行GeneratorSqlmap.java中的main方法如果出现java.io.FileNotFoundException: XXX.xml

点执行后如报如下错误:

解决方法:如图我们在 该项目下导入的 模块 vm的位置是 我们的项目下面,而不是这个模块下面.我们要手动设置该类的 工作目录为自己所在的目录位置

让vm运行位置与其模块所在位置一样

点击ok,重新执行就行了.....

使用IDEA在Maven中创建MyBatis逆向工程以及需要注意的问题(入门)的更多相关文章

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

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

  2. IDEA中使用mybatis逆向工程

    如果使用过mybatis的人就会发现,当我们使用mybatis时,我们每次都需要自己手动创建实体类,映射文件(当然你也可以用注释),还有接口来进行使用,这样手动创建非常的繁琐,mybatis考虑到这方 ...

  3. maven中使用mybatis

    1.Mybatis优缺点 优点: Mybatis实现了对Dao层的封装,隔离了SQL语句,便于管理,避免了像JDBC那样操作数据集,便于扩展等等. 缺点: Mybatis属于?半自动“ORM”,比Hi ...

  4. IDEA 中生成 MyBatis 逆向工程实践

    IDEA 逆向 MyBatis 工程时,不像支持 Hibernate 那样有自带插件,需要集成第三方的 MyBatis Generator. MyBatis Generator的详细介绍 http:/ ...

  5. Eclipse新建Maven中创建src文件夹报The folder is already a source folder错误解决办法

    问题: 解决办法:右击项目->Build Path->Configure Build Path选择(missing)文件夹remove,然后重新New Source Folder

  6. Maven项目下的Mybatis逆向工程

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

  7. 如何在Eclipse中搭建MyBatis基本开发环境?(使用Eclipse创建Maven项目)

    实现要求: 在Eclipse中搭建MyBatis基本开发环境. 实现步骤: 1.使用Eclipse创建Maven项目.File >> New >> Maven Project ...

  8. 创建mybatis的逆向工程

    1.mybatis的逆向工程(我使用的是maven仓库创建) 工作原理:反向工程(通过数据库中的表和字段信息去生成对应的增删改查方法) 其实就是一个自动生成工具 生成实体类(pojo)和映射文件(ma ...

  9. idea 中使用Mybatis Generator逆向工程生成代码

    通过MAVEN完成 Mybatis 逆向工程 1. POM文件中添加插件 在 pom 文件的build 标签中 添加 plugin 插件和 数据库连接 jdbc 的依赖. <build> ...

随机推荐

  1. ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

    本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度. 一.简单一行指令即可实现 <%@ OutputCache VaryByParam=" %> 这样整个页面 ...

  2. C++中static和const关键字的作用

    static关键字至少有下列几个作用: 函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值: 在模块内的static全局变量 ...

  3. 使用multiprocessing模块操作进程

    1.Process模块介绍 process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. Process([group [, target [, name [, args [, kwa ...

  4. thinkphp queue

    composer create-project topthink/think composer require topthink/think-queue php think queue:work -- ...

  5. HDU 5421 Victor and String (回文自动机)

    题目大意:让你维护一个字符串,支持在开头结尾插入字符,以及查询本质不同的回文串数量以及回文串总数量 开头结尾都维护一个$last$指针,如果插入新字符后,整个串是一个回文串,就把另一个$last$赋值 ...

  6. [读书笔记] R语言实战 (二) 创建数据集

    R中的数据结构:标量,向量,数组,数据框,列表 1. 向量:储存数值型,字符型,或者逻辑型数据的一维数组,用c()创建 **  R中没有标量,标量以单元素向量的形式出现 2. 矩阵:二维数组,和向量一 ...

  7. 九、frp对外提供简单的文件访问服务

    通过 static_file 插件可以对外提供一个简单的基于 HTTP 的文件访问服务.类似于http的文件索引! 服务端frps.ini配置[common]bind_addr = 0.0.0.0bi ...

  8. django-9-请求与响应

    写在表单下面{% csrf_token %} <<<文件上传>>>settings.py UPLOAD_ROOT = os.paht.join(BASE_DIR, ...

  9. ASP.NET-internat身份验证

    ASP.NET-internat身份验证默认在webconfig中配置的代码是这样的 <system.web> <compilation debug="true" ...

  10. 洛谷 P3079 [USACO13MAR]农场的画Farm Painting

    P3079 [USACO13MAR]农场的画Farm Painting 题目描述 After several harsh winters, Farmer John has decided it is ...