zoukankan      html  css  js  c++  java
  • Mybatis 逆向工程使用(Day_17)

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


    【何为逆向工程?】

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

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

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

    【使用工具】

      IntelliJ IDEA 2018.3 

     

    【官网】

    https://mybatis.org/mybatis-3

    【使用步骤】

    (1)、添加POM依赖

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

      

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

      

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

    (3)、properties 文件

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

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

        GeneratorSqlmap.java 文件:

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

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

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

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

    【结束语】

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

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

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

      如下图 :

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

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

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

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

    See you 

     

  • 相关阅读:
    格式化数字,将字符串格式的数字,如:1000000 改为 1 000 000 这种展示方式
    jquery图片裁剪插件
    前端开发采坑之安卓和ios的兼容问题
    页面消息提示,上下滚动
    可以使用css的方式让input不能输入文字吗?
    智慧农村“三网合一”云平台测绘 大数据 农业 信息平台 应急
    三维虚拟城市平台测绘 大数据 规划 三维 信息平台 智慧城市
    农业大数据“一张图”平台测绘 大数据 房产 国土 农业 信息平台
    应急管理管理局安全生产预警平台应急管理系统不动产登记 测绘 大数据 规划 科教 三维 信息平台
    地下综合管廊管理平台测绘 大数据 地下管线 三维 信息平台
  • 原文地址:https://www.cnblogs.com/papercy/p/13965761.html
Copyright © 2011-2022 走看看