zoukankan      html  css  js  c++  java
  • 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函数运行即可生成各个模块的代码。

  • 相关阅读:
    【数学】三分法
    【数学】【背包】【NOIP2018】P5020 货币系统
    【数学】【CF27E】 Number With The Given Amount Of Divisors
    【单调队列】【P3957】 跳房子
    【极值问题】【CF33C】 Wonderful Randomized Sum
    【DP】【CF31E】 TV Game
    【神仙题】【CF28D】 Don't fear, DravDe is kind
    【线段树】【CF19D】 Points
    【字符串】KMP字符串匹配
    【二维树状数组】【CF10D】 LCIS
  • 原文地址:https://www.cnblogs.com/fennudexiaofan/p/13410964.html
Copyright © 2011-2022 走看看