zoukankan      html  css  js  c++  java
  • maven插件mybatis-generator自动生成代码

      在开发中ssm框架用的十分广泛。mybatis最为持久层框架,根据xml、或者注解映射数据。自己可以控制sql,灵活简单操作数据库。但是,所有的sql文件都是有自己编写,不仅繁琐,而且很耗时,在开发中,速度、效率很重要。所以很多基础sql是有规律可循,可以根据数据库字段自动生成的。下面就进入今天的主题,通过maven插件mybatis-generator自动生成代码。

      1、环境配置,创建maven项目,在pom.xml添加插件配置。

      <build>
            <finalName>zsxt</finalName>
            <plugins>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <verbose>true</verbose>
                        <overwrite>true</overwrite>
                    </configuration>
                </plugin>
            </plugins>
        </build>

      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="D:maven-repository
    epositorymysqlmysql-connector-java5.1.36mysql-connector-java-5.1.36.jar"/>
        
        <context id="my" targetRuntime="MyBatis3">
        
            <commentGenerator>
                <property name="suppressDate" value="false"/>
                <property name="suppressAllComments" value="true"/>
            </commentGenerator>
    
            <!--数据库连接 必须要有的,使用这个配置链接数据库-->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/mt"
                            userId="root"
                            password="root">
            </jdbcConnection>
    
            <!-- javamodel类生成器,targetPackage是生成实体的包名; targetProject是项目地址-->
            <javaModelGenerator targetPackage="com.mdd.pip.model"
                                targetProject="srcmainjava">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
    
              <!-- 生成SQL map的XML文件生成器,注意,在Mybatis3之后,我们可以使用mapper.xml文件+Mapper接口(或者不用mapper接口),
                                          或者只使用Mapper接口+Annotation,所以,如果 javaClientGenerator配置中配置了需要生成XML的话,这个元素就必须配置
                 targetPackage/targetProject:同javaModelGenerator
             -->
            <sqlMapGenerator targetPackage="com.mdd.pip.mapper"
                             targetProject="srcmainjava">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <javaClientGenerator targetPackage="com.mdd.pip.mapper"
                                 targetProject="srcmainjava" type="XMLMAPPER">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
            <!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素
                            选择的table会生成一下文件:
            1,SQL map文件
            2,生成一个主键类;
            3,除了BLOB和主键的其他字段的类;
            4,包含BLOB的类;
            5,一个用户生成动态查询的条件类(selectByExample, deleteByExample),可选;
            6,Mapper接口(可选)
    
            tableName(必要):要生成对象的表名;
                可选:
            1,schema:数据库的schema;
            2,catalog:数据库的catalog;
            3,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
            4,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
            5,enableInsert(默认true):指定是否生成insert语句;
            6,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
            7,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
            8,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
            9,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
            10,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
            11,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
            12,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);
            13,modelType:参考context元素的defaultModelType,相当于覆盖;
            14,delimitIdentifiers:参考tableName的解释,注意,默认的delimitIdentifiers是双引号,如果类似MYSQL这样的数据库,使用的是`(反引号,那么还需要设置context的beginningDelimiter和endingDelimiter属性)
            15,delimitAllColumns:设置是否所有生成的SQL中的列名都使用标识符引起来。默认为false,delimitIdentifiers参考context的属性
    
                           注意,table里面很多参数都是对javaModelGenerator,context等元素的默认属性的一个复写;
           -->
             <table tableName="t_proxy_ip" domainObjectName="ProxyIp"
                   enableCountByExample="false" enableUpdateByExample="false"
                   enableDeleteByExample="false" enableSelectByExample="false"
                   selectByExampleQueryId="false">
            </table>
        </context>
    </generatorConfiguration>

    在本例中,使用的是mysql数据库,需要指定MySQL数据库的JDBC驱动。

    1、指定连接数据库的URL;

    2 javaModelGenerator 指定生成数据模型对象的包名,如com.xxx.xxx.model, targetProject 指定是项目及存放model的目录。

    3、sqlMapGenerator  需要设置包名,和存放映射文件的路径。如果用maven 管理,一般xml文件放在src/main/resources目录下。

    4、javaClientGenerator 需要设置包名及路径。

    6、接下来需要配置你需要生成的表名。

     3、生成代码

    如果是在eclipse 中,选择pom.xml文件,击右键先择Run AS——>Maven Build… ——>在Goals框中输入:mybatis-generator:generate

    如果在命令行输入Maven命令,注意:一定是当前项目目录下运行该命令:

    mvn mybatis-generator:generate

    ok完成

  • 相关阅读:
    HDU 1010 Tempter of the Bone
    HDU 4421 Bit Magic(奇葩式解法)
    HDU 2614 Beat 深搜DFS
    HDU 1495 非常可乐 BFS 搜索
    Road to Cinema
    Sea Battle
    Interview with Oleg
    Spotlights
    Substring
    Dominating Patterns
  • 原文地址:https://www.cnblogs.com/xwlmdd/p/6938002.html
Copyright © 2011-2022 走看看