SpringCloud+MyBatis(oracle)逆向工程自动生成代码

编程

1、建立数据库DB连接(已有表)

2、实体类/POJO/Mapper.xml

3、程序增删改查操作

其中,第二步:实体类/POJO/XML等;都是由手工编写的代码和xml文件,此为正向工程。

二、为何逆向工程?


    如一所述:正向工程,人为手工编写代码实体类/POJO/Mapper.xml等,很多操作都是重复并冗余的。比如:实体类,其实就是数据库表的一个映射,把表字段一个个列出来并设置getter/setter方法以便程序使用。pojo,select、update、delete、insert方法也都是千篇一律,无非就是方法不同,参数各异。xml,就是SQL语句的整合与数据库交互的连接点;对于同一个项目而言数据库连接相同,项目路径一样等。

    如果:可以自动生成实体类、pojo、xml等,那么可以减轻很多重复人为工作量,转而由机器自动生成,当数据库表操作量大的话,会节省很多的时间。

三、Spring中MyBatis逆向工程操作步骤

 

  • Maven添加依赖
  • generatorConfig.xml配置
  • 数据库连接配置、实体类/POJO/XML生成路径
  • 指定数据库表
  • java class用于自动生成的main方法

1、Maven依赖,包括ojdbc数据库连接、mybatis支持、spring-mybatis插件这几大类。

SpringBoot对MyBatis插件的支持:

       

<dependency>

            <groupId>org.mybatis.spring.boot</groupId>

            <artifactId>mybatis-spring-boot-starter</artifactId>

            <version>1.1.1</version>

        </dependency>


自动生成mybatis-generator-core依赖引入(核心):

            

<plugin>

                <groupId>org.mybatis.generator</groupId>

                <artifactId>mybatis-generator-maven-plugin</artifactId>

                <version>1.3.2</version>

                <dependencies>

                    <dependency>

                        <groupId>org.mybatis.generator</groupId>

                        <artifactId>mybatis-generator-core</artifactId>

                        <version>1.3.2</version>

                    </dependency>

                </dependencies>

            </plugin>


2、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>

 

    <classPathEntry

        location="C:UsersAdministrator.m2epositorycomoracleojdbc611.1.0.7.0ojdbc6-11.1.0.7.0.jar" />

    <context id="context1"> 

        <property name="javaFileEncoding" value="UTF-8" />

        <commentGenerator type="com.**nks.e**s.CustomCommentGenerator" >

            <property name="suppressAllComments" value="true"/>

        </commentGenerator>

 

        <jdbcConnection connectionURL="jdbc:oracle:thin:@//1**.20.19.2**:1521/p**y"

            driverClass="oracle.jdbc.driver.OracleDriver" password="***#123"

            userId="**s">

            <!-- 针对oracle数据库 -->

            <property name="remarksReporting" value="true"></property>

        </jdbcConnection>

 

 

        <javaModelGenerator targetPackage="com.**nks.**ps.pas.tmp"

            targetProject="srcmainjavacom**links**pspas mp" />

 

        <sqlMapGenerator targetPackage="com.**links.**ps.pas.tmp"

            targetProject="srcmainjavacom**links**pspas mp" />

 

        <javaClientGenerator targetPackage="com.**links.**ps.pas.tmp"

            targetProject="srcmainjavacom**links**pspas mp" type="XMLMAPPER" />

 

 

        <table tableName="CUM_WITHDRAW_COUNT_RECORD" domainObjectName="WithdrawCountRecord"

               enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"

               enableSelectByExample="false" selectByExampleQueryId="false">

        </table>

    </context>

</generatorConfiguration>


3、CustomCommentGenerator自动生成的启动main方法入口class文件

package com.**links.**ps;

 

import org.mybatis.generator.api.IntrospectedColumn;

import org.mybatis.generator.api.IntrospectedTable;

import org.mybatis.generator.api.MyBatisGenerator;

import org.mybatis.generator.api.dom.java.Field;

import org.mybatis.generator.config.Configuration;

import org.mybatis.generator.config.xml.ConfigurationParser;

import org.mybatis.generator.internal.DefaultCommentGenerator;

import org.mybatis.generator.internal.DefaultShellCallback;

 

import java.io.InputStream;

import java.util.ArrayList;

import java.util.List;

 

public class CustomCommentGenerator extends DefaultCommentGenerator {

    @Override

    public void addFieldComment(Field field, IntrospectedTable introspectedTable,

            IntrospectedColumn introspectedColumn) {

        // 添加字段注释 

        field.addJavaDocLine("/**"); 

        if (introspectedColumn.getRemarks() != null) {

            field.addJavaDocLine(" * " + introspectedColumn.getRemarks());

        }

         // addJavadocTag(field, false);

        field.addJavaDocLine(" */");

    }

    

    

    public static void main(String[] args) throws Exception {

        try {

            List<String> warnings = new ArrayList();

            boolean overwrite = true;

            ClassLoader classloader = Thread.currentThread().getContextClassLoader();

            InputStream is = classloader.getResourceAsStream("generatorConfig.xml");

            ConfigurationParser cp = new ConfigurationParser(warnings);

            Configuration config = cp.parseConfiguration(is);

            DefaultShellCallback callback = new DefaultShellCallback(overwrite);

            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

            myBatisGenerator.generate(null);

        } catch (Exception e) {

            e.printStackTrace();

        } 

    }

 

}


按照上述步骤都做好之后,在不需要启动项目的前提下,即可自动生成代码。

右键单击CustomCommentGenerator类,选择run或debug

 

接下来,程序就自动生成指定的表所需要的实体类、POJO、mapper.xml

如下所示:

带有注释的实体类

如此,整个过程的步骤都完成了。

注:这里的生成路径是楼主自己建的临时路径文件夹srcmainjavacom**links**pspas mp,然后再如果有批量的表需要自动生成,则只需在generatorConfig.xml文件中配置多个table即可。

 

        <table tableName="tableName***" domainObjectName="pojoName***"

               enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"

               enableSelectByExample="false" selectByExampleQueryId="false">

        </table>

......


MyBatis的逆向工程,给我们开发带来很大的便利。是开发者必须要掌握的技术,分享到这里;觉得有帮助随手给个赞和转发一下。

 


关注公众号:程序大视界

觉得对你有帮助,关注博客和公众号。不定期分享最新前沿技术框架和bat大厂常用技术等,加群不定期分享行业内大牛直播讲课以及获得视频课件资料等。
 

以上是 SpringCloud+MyBatis(oracle)逆向工程自动生成代码 的全部内容, 来源链接: utcz.com/z/516488.html

回到顶部