• mybatis generator工具的使用


    mybatis反转数据库的配置文件:

    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>
        <!-- 配置mysql驱动包,使用的绝对路径 -->
        <classPathEntry location="G:javalibjdbcmysql-connector-java-5.0.8-bin.jar"/>
        
        <context id="westward_mysql_tables" targetRuntime="MyBatis3">
             <!-- 控制生成的代码中的注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/>
                <property name="suppressDate" value="true"/>
            </commentGenerator>
            
            <!-- 数据库连接 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" 
                            userId="yao" password="y123" />
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
            
            <!-- 数据表对应的model 层  -->
            <javaModelGenerator targetPackage="com.westward.bean" targetProject="src">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
            
            <!-- sql mapper 映射配置文件 -->
            <sqlMapGenerator targetPackage="com.westward.mapper" targetProject="src">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
            
            <!-- 在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 -->
            <javaClientGenerator targetPackage="com.westward.inter" type="XMLMAPPER" targetProject="src">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
            
             <!-- 要对那些数据表进行生成操作,必须要有一个. -->
            <table tableName="category" schema="mybatis" domainObjectName="Category" 
                    enableCountByExample="false" enableDeleteByExample="false" 
                    enableSelectByExample="false"  
                    enableUpdateByExample="false" selectByExampleQueryId="false" >
            </table>
        </context>
        
    </generatorConfiguration>

    根据配置文件,生成对应的bean,接口,mapper的方法:

    mybatis官网:http://www.mybatis.org/generator/running/running.html

    给了好几种方法:我就摘出两种最常用的吧:

    1.命令行的方式:

    java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite

    注意jar包和xml文件的路径
    我的命令行是在项目根目录下

    2.java代码的形式:
    public static void main(String[] args) {
            List<String> warnings= new ArrayList<String>();
            boolean overwrite= true;
            String genCfg= "G:/workspace10/mybatisgenerator/src/generatorConfig.xml";
            File configFile= new File(genCfg);
            ConfigurationParser cp= new ConfigurationParser(warnings);
            Configuration config= null;
            try {
                config= cp.parseConfiguration(configFile);
                DefaultShellCallback callback= new DefaultShellCallback(overwrite);
                MyBatisGenerator myBatisGenerator= null;
                myBatisGenerator= new MyBatisGenerator(config, callback, warnings);
                myBatisGenerator.generate(null);
                
                System.out.println(warnings);
                
            } catch (IOException e) {
                e.printStackTrace();
            } catch (XMLParserException e) {
                e.printStackTrace();
            } catch (InvalidConfigurationException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    }

    其中集合warning,会存储执行的错误信息,若无错误,则集合中无元素。


    可能出现的错误:
    [There are no statements enabled for table mybatis.category, this table will be ignored.]
    原因:generatorConfig.xml中,<table>标签配成了这样,

    把标红的去掉就行了,标红的默认是true,不需要显示配成false.上边的带Example的配成false就行,带Example的是指示例,这个基本不需要。

    附上maven结构的web项目,一次构建多个表的配置:

    <?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>
        <!-- 配置mysql驱动包,使用的绝对路径 -->
        <classPathEntry location="G:javalibjdbcmysql-connector-java-5.0.8-bin.jar"/>
        
        <context id="westward_mysql_tables" targetRuntime="MyBatis3">
             <!-- 控制生成的代码中的注释 -->
            <commentGenerator>
                <property name="suppressAllComments" value="true"/>
                <property name="suppressDate" value="true"/>
            </commentGenerator>
            
            <!-- 数据库连接 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/bookestore" 
                            userId="yao" password="y123" />
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
            
            <!-- 数据表对应的model 层  -->
            <javaModelGenerator targetPackage="com.blue.bean" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
            
            <!-- sql mapper 映射配置文件 -->
            <sqlMapGenerator targetPackage="com.blue.mapper" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
            
            <!-- 在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 -->
            <javaClientGenerator targetPackage="com.blue.dao" type="XMLMAPPER" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
            
             <!-- 要对那些数据表进行生成操作,必须要有一个. -->
            <table tableName="orders" schema="mybatis" domainObjectName="Order" 
                    enableCountByExample="false" enableDeleteByExample="false" 
                    enableSelectByExample="false"  
                    enableUpdateByExample="false" selectByExampleQueryId="false" >
            </table>
            <table tableName="orderitem" schema="mybatis" domainObjectName="OrderItem" 
                    enableCountByExample="false" enableDeleteByExample="false" 
                    enableSelectByExample="false"  
                    enableUpdateByExample="false" selectByExampleQueryId="false" >
            </table>
            <table tableName="users" schema="mybatis" domainObjectName="User" 
                    enableCountByExample="false" enableDeleteByExample="false" 
                    enableSelectByExample="false"  
                    enableUpdateByExample="false" selectByExampleQueryId="false" >
            </table>
            <table tableName="products" schema="mybatis" domainObjectName="Product" 
                    enableCountByExample="false" enableDeleteByExample="false" 
                    enableSelectByExample="false"  
                    enableUpdateByExample="false" selectByExampleQueryId="false" >
            </table>
        </context>
        
    </generatorConfiguration>














  • 相关阅读:
    Flutter Android ERROR: ensureInitializationComplete must be called after startInitialization
    MySQL 创建用户表和好友表
    Android 广播的使用 文档使用的是 kotlin版本
    Flutter 分段器的使用
    Flutter 计算两个日期之间相差多少天,生成区间随机数
    Flutter 多环境
    Android ListView 的使用 Kotlin
    Android 自定义控件----基础
    Flutter 学习(3)------------通过List或者map循环数据渲染页面。。
    vs2015 编译报错:The project references NuGet package(s) that are missing on this computer...
  • 原文地址:https://www.cnblogs.com/westward/p/6711135.html
Copyright © 2020-2023  润新知