zoukankan      html  css  js  c++  java
  • 「小程序JAVA实战」Springboot版mybatis逆向生成工具(32)

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

    我们的整个项目的构建和分层已经完毕了,现在需要通过一个工具将我们整个数据库,反向升成pojo和mybatis类。源码:https://github.com/limingios/wxProgram.git 中的wx-springboot

    代码生成器

    逆向生成mysql对应的pojo和mybatis通过单独的一个工程不影响现有的业务逻辑。

    • mybatis-generatorConfig工程

    通过源码里面的sql生成对应的表结构和表数据。

    mybatis-generatorConfig的pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
    
       <groupId>com.idig8</groupId>
        <version>0.0.1-SNAPSHOT</version>
    
      <artifactId>mybatis-generatorConfig</artifactId>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
    
            <!-- 引入log4j日志依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-log4j</artifactId>
                <version>1.3.8.RELEASE</version>
            </dependency>
    
            <!-- 阿里开源数据源 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.0</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.0</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.41</version>
            </dependency>
    
            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.1</version>
            </dependency>
            <!--mapper-->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>1.2.4</version>
            </dependency>
            <!--pagehelper-->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>1.2.3</version>
            </dependency>
    
            <!-- mybatis 逆向生成工具  -->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.2</version>
                <scope>compile</scope>
                <optional>true</optional>
            </dependency>
        </dependencies>
    </project>
    

    添加generatorConfig.xml文件

    <?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">
    
    <generatorConfiguration>
        <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
            <property name="beginningDelimiter" value="`"/>
            <property name="endingDelimiter" value="`"/>
    
            <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
                <property name="mappers" value="com.idig8.utils.MyMapper"/>
            </plugin>
    
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://47.94.162.28:3306/test"
                            userId="XXXXX"
                            password="XXXXX">
            </jdbcConnection>
    
            <!-- 对应生成的pojo所在包 -->
            <javaModelGenerator targetPackage="com.idig8.pojo" targetProject="src/main/java"/>
    
            <!-- 对应生成的mapper所在目录 -->
            <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
    
            <!-- 配置mapper对应的java映射 -->
            <javaClientGenerator targetPackage="com.idig8.mapper" targetProject="src/main/java" 
            type="XMLMAPPER"/>
    
    
            <table tableName="comments"></table>
    
        </context>
    </generatorConfiguration>
    

    GeneratorDisplay.java类

    package com.idig8.mybatis.utils;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.mybatis.generator.api.MyBatisGenerator;
    import org.mybatis.generator.config.Configuration;
    import org.mybatis.generator.config.xml.ConfigurationParser;
    import org.mybatis.generator.internal.DefaultShellCallback;
    
    
    public class GeneratorDisplay {
    
        public void generator() throws Exception{
    
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            //指定 逆向工程配置文件
            File configFile = new File("generatorConfig.xml"); 
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(configFile);
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
                    callback, warnings);
            myBatisGenerator.generate(null);
    
        } 
    
        public static void main(String[] args) throws Exception {
            try {
                GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
                generatorSqlmap.generator();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    
    

    添加MyMapper.java文件

    /*
     * The MIT License (MIT)
     *
     * Copyright (c) 2014-2016 abel533@gmail.com
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
     * in the Software without restriction, including without limitation the rights
     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     * copies of the Software, and to permit persons to whom the Software is
     * furnished to do so, subject to the following conditions:
     *
     * The above copyright notice and this permission notice shall be included in
     * all copies or substantial portions of the Software.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     * THE SOFTWARE.
     */
    
    package com.idig8.utils;
    
    import tk.mybatis.mapper.common.Mapper;
    import tk.mybatis.mapper.common.MySqlMapper;
    
    public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
        //TODO
        //FIXME 特别注意,该接口不能被扫描到,否则会出错
    }
    
    
    • 运行GeneratorDisplay的main方法

    1. 复制com.idig8.mapper目录到wx-springboot-mapper项目下

    2. 复制com.idig8.pojo 目录到wx-springboot-pojo项目下

    3. 复制com.idig8.utils 目录到wx-springboot-common项目下

    4. 复制resources mapper到wx-springboot-api的resources里面

    PS:mybatis-generatorConfig 可以看成一个单独的项目,主要的目的就是为了升成对应的mapper.xml和对应的pojo实体类,mapper对应的实体。

  • 相关阅读:
    ajax方法参数详解与$.each()和jquery里面each方法的区别
    Struts2框架里面action与前端jsp页面进行交互路径问题---》一个对话框里面有很多超链接,进行相应的跳转
    Struts2框架action路径问题心得----》页面url请求怎么找action
    Mybatis映射.xml文件报错
    MyBatis框架流程
    Struts2框架action层学习心得体会
    动态sql语句和动态传入参数个数
    String,数组,list集合长度的使用
    ResourceBundle和Locale
    linux编译内核
  • 原文地址:https://www.cnblogs.com/sharpest/p/10293803.html
Copyright © 2011-2022 走看看