• mybatis开发 —— 快速生成开发代码


    一,mybatis example 形式代码

    编写 generator.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="D:softwarelibmysql-connector-java-5.1.21.jar" /> -->
        <classPathEntry location="C:oracleproduct10.2.0db_1jdbclibojdbc14.jar" />
        <context id="DB2Tables" targetRuntime="MyBatis3">
            <commentGenerator>
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            <!-- 数据库链接URL、用户名、密码 -->
            <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/sy" userId="sypro" password="sypro"> -->
            <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa">
            </jdbcConnection>
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
            <!-- 生成模型的包名和位置 -->
            <javaModelGenerator targetPackage="sy.model" targetProject="D:studymybatissrc">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!-- 生成的映射文件包名和位置 -->
            <sqlMapGenerator targetPackage="sy.mapping" targetProject="D:studymybatissrc">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
            <!-- 生成DAO的包名和位置 -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="sy.dao" targetProject="D:studymybatissrc">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
            <!-- 要生成那些表(更改tableName和domainObjectName就可以) -->
            <table tableName="tbug" domainObjectName="Bug" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" />
    
        </context>
    </generatorConfiguration>

    配置好上述文件之后,打开CMD命令行 ,java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

     链接: https://pan.baidu.com/s/1aXR9dd_DfHAHG-86ipCxrA 提取码: k7bp

     记得这些文件需要放在没有中文的文件夹路径,否则会报错,上述的src文件夹,为generator.xml配置的src位置。这样子即可一键生成mapper,model,example的代码。

    二,mybatisplus Wrapper condition形式代码

    pom引入需要的包

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>2.3</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-support</artifactId>
                <version>2.3.3</version>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.35</version>
            </dependency>
    package com.infore.saas.filepreview;
    
    import com.baomidou.mybatisplus.generator.AutoGenerator;
    import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
    import com.baomidou.mybatisplus.generator.config.GlobalConfig;
    import com.baomidou.mybatisplus.generator.config.PackageConfig;
    import com.baomidou.mybatisplus.generator.config.StrategyConfig;
    import com.baomidou.mybatisplus.generator.config.rules.DbType;
    import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
    
    
    /**
     * 代码生成器
     * ps:只需要配置前面的静态参数,即可生成代码
     */
    public class MpGenerator {
    
        /**
         * mysql IP
         */
        private static String MYSQL_IP = "127.0.0.1";
    
        /**
         * mysql 端口
         */
        private static String MYSQL_PORT = "3306";
    
        /**
         * mysql 数据库名称
         */
        private static String MYSQL_DATABASE = "demo";
    
        /**
         * mysql 表名称
         */
        private static String MYSQL_TABLE_NAME = "student";
    
        /**
         * mysql 用户名
         */
        private static String MYSQL_USER_NAME = "root";
    
        /**
         * mysql 密码
         */
        private static String MYSQL_USER_PASSWORD = "123456";
    
        /**
         * 包名
         */
        private static String JAVA_PACKAGE_NAME = "com.lawliet.system";
    
        /**
         * 生成文件地址
         */
        private static String FILE_ADDRESS = "D:\code";
    
        /**
         * 作者名称
         */
        private static String AUTHOR_NAME = "Lawliet";
    
        /**
         * 业务类是否以I开头
         */
        private static boolean JAVA_SERVICE_NAME_START_WITH_I = false;
    
        /**
         * 生成源代码方法
         *
         * @param serviceNameStartWithI 业务类是否以I开头
         * @param packageName           包名
         * @param tableNames            表名
         */
        private void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) {
            GlobalConfig config = new GlobalConfig();
            String dbUrl = String.format("jdbc:mysql://%s:%s/%s", MYSQL_IP, MYSQL_PORT, MYSQL_DATABASE);
            DataSourceConfig dataSourceConfig = new DataSourceConfig();
            dataSourceConfig.setDbType(DbType.MYSQL)
                    .setUrl(dbUrl)
                    .setUsername(MYSQL_USER_NAME)
                    .setPassword(MYSQL_USER_PASSWORD)
                    .setDriverName("com.mysql.jdbc.Driver");
            StrategyConfig strategyConfig = new StrategyConfig();
            strategyConfig
                    .setCapitalMode(true)
                    .setEntityLombokModel(false)
                    .setDbColumnUnderline(true)
                    .setNaming(NamingStrategy.underline_to_camel)
                    .setInclude(tableNames);//修改替换成你需要的表名,多个表名传数组
            config.setActiveRecord(false)
                    .setAuthor(AUTHOR_NAME)
                    .setOutputDir(FILE_ADDRESS)
                    .setFileOverride(true)
                    .setEnableCache(false)// XML 二级缓存
                    .setBaseResultMap(true)// XML ResultMap
                    .setBaseColumnList(true)// XML columList
            ;
            if (!serviceNameStartWithI) {
                config.setServiceName("%sService");
            }
            new AutoGenerator().setGlobalConfig(config)
                    .setDataSource(dataSourceConfig)
                    .setStrategy(strategyConfig)
                    .setPackageInfo(
                            new PackageConfig()
                                    .setParent(packageName)
                                    //.setController("controller")
                                    .setEntity("model")
                    ).execute();
        }
    
        /**
         * 完成上面参数配置即可执行该main方法生成源代码
         */
        public static void main(String[] args) {
            System.out.println("-- 服务启动,正在初始化....");
            new MpGenerator().generateByTables(JAVA_SERVICE_NAME_START_WITH_I, JAVA_PACKAGE_NAME, MYSQL_TABLE_NAME);
            System.out.println("-- " + MYSQL_TABLE_NAME + "相关的mapper,model,service生成成功。");
        }
    }
    

    mybatisplus 更加简单,将上述代码进行main函数运行即可生成各个模块的代码。

  • 相关阅读:
    efwplus框架
    注册区域
    社招面试记录与总结
    验证码 Captcha 之大插件
    发生内存泄漏?
    Flume+LOG4J+Kafka
    协议如何保证可靠传输
    oracle之spool详细使用总结(转)
    SSH协议详解(转)
    oracle nologging用法(转)
  • 原文地址:https://www.cnblogs.com/fennudexiaofan/p/13410964.html
Copyright © 2020-2023  润新知