zoukankan      html  css  js  c++  java
  • 使用mybatis generator插件,自动生成dao、dto、mapper等文件

    mybatis generator 介绍

    mybatis generator中文文档http://mbg.cndocs.tk/

    MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATIS 2.2.0版本以后的代码。 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象。 这样和数据库表进行交互时不需要创建对象和配置文件。 MBG的解决了对数据库操作有最大影响的一些简单的CRUD(插入,查询,更新,删除)操作。 您仍然需要对联合查询和存储过程手写SQL和对象。

    在pom中添加插件

    <plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.5</version>
    <configuration>
    <configurationFile>src/main/resources/mybatis-generator/generator-config.xml
    </configurationFile>
    <verbose>true</verbose>
    <overwrite>false</overwrite>
    <skip>false</skip>
    </configuration>
    <executions>
    <execution>
    <id>Generate MyBatis Artifacts</id>
    <goals>
    <goal>generate</goal>
    </goals>
    </execution>
    </executions>
    <dependencies>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.40</version>
    </dependency>
    <dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.5</version>
    </dependency>
    </dependencies>
    </plugin>
    <resources>
    <resource>
    <directory>src\main\resources</directory>
    </resource>
    <resource>
    <directory>src\main\java</directory>
    <includes>
    <include>com/**/**/mapper/*.xml</include>
    </includes>
    </resource>
    </resources>

    在resource里添加文件

    generator.properties

    jdbc.driverClass=com.mysql.jdbc.Driver
    jdbc.connectionURL=jdbc:mysql://localhost:3306/mybatis
    jdbc.userId=root
    jdbc.password=1234

    数据库中的表

    generator-config.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>
    <!--数据库驱动-->
    <properties resource="mybatis-generator/generator.properties"></properties>

    <context id="default" targetRuntime="MyBatis3">
    <!-- 在创建class时,对注释进行控制 -->
    <commentGenerator>
    <property name="suppressDate" value="true" />
    <property name="suppressAllComments" value="true"/>
    </commentGenerator>
    <!--数据库链接地址账号密码-->
    <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.connectionURL}" userId="${jdbc.userId}" password="${jdbc.password}">
    </jdbcConnection>
    <!-- 类型处理器,在数据库类型和java类型之间的转换控制-->
    <javaTypeResolver >
    <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!--生成Model类存放位置-->
    <javaModelGenerator targetPackage="com.dakewang.dto" targetProject="src/main/java">
    <!-- 是否对model添加 构造函数 -->
    <property name="constructorBased" value="false"/>
    <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
    <property name="enableSubPackages" value="false"/>
    <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
    <property name="immutable" value="false"/>
    <!-- 给Model添加一个父类 -->
    <!--<property name="rootClass" value="com.foo.louis.Hello"/>-->
    <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
    <property name="trimStrings" value="true"/>
    </javaModelGenerator>
    <!--生成映射文件存放位置,为每一个数据库的表生成对应的SqlMap文件-->
    <sqlMapGenerator targetPackage="com.dakewang.mapper" targetProject="src/main/java">
    <property name="enableSubPackages" value="false"/>
    </sqlMapGenerator>

    <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
    type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
    type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
    type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
    -->
    <!--生成Dao类存放位置-->
    <javaClientGenerator targetPackage="com.dakewang.mapper" targetProject="src/main/java" type="MIXEDMAPPER">
    <property name="enableSubPackages" value="false"/>
    </javaClientGenerator>



    <!--生成对应表及类名-->
    <table tableName="student_info" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->


    </context>
    </generatorConfiguration>

    启动运行

    如果添加成功,点击运行generator,则控制台输出信息

    Process finished with exit code 0

    然后会自动生成

    
    
    
    
  • 相关阅读:
    [译]理解 iOS 异常类型 <🌟>
    LeetCode 24. 两两交换链表中的节点
    解决The operation couldn’t be completed. Unable to log in with account
    <Typora> 常用操作快捷键
    LeetCode 23. 合并K个升序链表
    CSS盒子模型
    CCS属性
    CSS
    form表单
    html
  • 原文地址:https://www.cnblogs.com/dakewang/p/6825156.html
Copyright © 2011-2022 走看看