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

      mybatis自动生成代码(实体类、Dao接口等)是很成熟的了,就是使用mybatis-generator插件。 它是一个开源的插件,使用maven构建最好,可以很方便的执行

      插件官方简介:
        http://www.mybatis.org/generator/index.html
      插件的GitHub地址:
        https://github.com/mybatis/generator

    如何使用mybatis-generator插件呢?只需要三步: 

    1、修改pom.xml配置文件

      网上大部分说法都要添加依赖:mybatis-generator-core。但是我测试之后并不需要,可能新版本改版过了吧,只要在<build>中添加<plugin> 就可以了。(如果报错的话再加上mybatis-generator-core的依赖吧)
      需要特别注意的是:这里要指定配置文件目录,名字可以自定义。

    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <configuration>
                    <!--指定配置文件目录-->
                    <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <!--这里添加了mysql的驱动依赖,就不需要再配置文件中配置了-->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.44</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

    2、添加pom中指定的配置文件generatorConfig.xml

      比较重要的一个是,该插件生成代码有带xml映射文件的 和不带xml而是使用注解的 两种方式,只需要配置 <javaClientGenerator> 标签的 type 属性:
        XMLMAPPER 生成xml映射文件, ANNOTATEDMAPPER 生成的dao采用注解来写sql

      mybatis-generator的属性详解网上也有很多资料,下面给出我的一个模板:

    <?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>
        <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包,如果在pom文件中添加了依赖,那么这里就可以注释掉了-->
        <!--<classPathEntry-->
        <!--location="E:MavenmvnRespomysqlmysql-connector-java5.1.44mysql-connector-java-5.1.44.jar"/>-->
    
        <!-- 一个数据库一个context -->
        <context id="bing" targetRuntime="MyBatis3">
    
            <!-- 生成的model实现Serializable借口 -->
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin">
                <!--<property name="suppressJavaInterface" value="true"/>-->
            </plugin>
    
            <!-- 自动生成equals方法和hashcode方法 -->
            <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>
    
            <!-- 该插件给实体类添加toString() -->
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
    
            <!--<plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin"/>-->
            <plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin"/>
    
            <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"/>
    
    
            <commentGenerator>
                <property name="suppressDate" value="true"/>
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="false"/>
                <property name="addRemarkComments" value="false"/>
            </commentGenerator>
    
            <!--数据库链接URL,用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC"
                            userId="root"
                            password="123456">
            </jdbcConnection>
    
            <!-- 类型转换 -->
            <javaTypeResolver>
                <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- 生成模型(实体)的包名和位置-->
            <javaModelGenerator targetPackage="com.ajz.course.ddao.model" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
                <property name="trimStrings" value="true"/>
            </javaModelGenerator>
    
            <!-- 生成映射文件的包名和位置-->
            <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <!-- 生成DAO的包名和位置-->
            <!-- XMLMAPPER生成xml映射文件, ANNOTATEDMAPPER 生成的dao采用注解来写sql -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.ajz.course.ddao.mapper" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
            <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
            <table tableName="course" domainObjectName="CourseModel">
                <generatedKey column="id" sqlStatement="MySql" identity="true"/>
            </table>
            <!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->
            <table tableName="rel_course_school" domainObjectName="CourseSchoolModel">
                <generatedKey column="id" sqlStatement="MySql" identity="true"/>
            </table>
    
        </context>
    </generatorConfiguration>

    3、执行mybatis-generator

      如果使用IDEA来加载项目,那再简单不过了。在【Maven Projects】窗口,找到对应项目下的【Plugins】目录,找到【mybatis-generator】下第一个generate命令,直接双击就好了,如图:

        

      如果非要自己写命令,或者就是非maven项目,那就需要在第二步中必须指定本地的数据库驱动,将目录切换到lib目录下,然后执行脚本:
        java -jar mybatis-generator-core-1.3.6.jar -configfile generatorConfig.xml -overwrite

      (PS:这种方法暂时没验证过啊,网上都这么写的,囧)

      注意:重复执行会覆盖


    原创文章,欢迎转载,转载请注明出处!

  • 相关阅读:
    Java实现 洛谷 P1060 开心的金明
    (Java实现) 洛谷 P1605 迷宫
    (Java实现) 洛谷 P1605 迷宫
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
    Java实现 洛谷 P1064 金明的预算方案
    (Java实现) 洛谷 P1031 均分纸牌
    QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
    武则天红人对唐睿宗的桃色报复(如此缺少城府,注定了要在宫廷中过早地出局)
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/mybatis_generator.html
Copyright © 2011-2022 走看看