mybatis自动生成代码

Posted MORGUE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis自动生成代码相关的知识,希望对你有一定的参考价值。

本次将简单介绍mybatis自动生成代码,mybatis-gennerator插件可以快速自动生成mybatis所需要的dao、bean、mapper.xml文件,减少开发人员手动编写代码,提高开发效率和降低错误。


1.在maven配置文件pom.xml中添加依赖:

    

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

 <modelVersion>4.0.0</modelVersion>

 <groupId>com.hf</groupId>

 <artifactId>spring-boot-service</artifactId>

 <version>0.0.1-SNAPSHOT</version>


     <!-- 默认继承 Spring Boot -->

    <parent>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-parent</artifactId>

        <version>1.4.0.RELEASE</version>

    </parent>


    <!-- 为Web应用程序添加典型的依赖项-->

   <dependencies>

       <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-web</artifactId>

        </dependency>


       <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-test</artifactId>

        <scope>test</scope>

         </dependency>

        

         <!-- 添加 MyBatis -->

     <dependency>

         <groupId>org.mybatis.spring.boot</groupId>

         <artifactId>mybatis-spring-boot-starter</artifactId>

         <version>1.2.0</version>

     </dependency>

     <!-- 添加 mysql -->

     <dependency>

         <groupId>mysql</groupId>

         <artifactId>mysql-connector-java</artifactId>

     </dependency>


     <dependency>

         <groupId>org.springframework.boot</groupId>

         <artifactId>spring-boot-starter-tomcat</artifactId>

     </dependency>

   </dependencies>


    <!-- 作为可执行JAR的包-->

    <build>

       <plugins>

           <plugin>

               <groupId>org.springframework.boot</groupId>

               <artifactId>spring-boot-maven-plugin</artifactId>

           </plugin>


           <plugin>

                        <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                 <configuration>

                    <source>1.7</source>

                    <target>1.7</target>

                 </configuration>

             </plugin>

             <plugin>

                  <groupId>org.mybatis.generator</groupId>

                  <artifactId>mybatis-generator-maven-plugin</artifactId>

                  <version>1.3.2</version>

                  <dependencies>

                     <dependency>

                         <groupId>mysql</groupId>

                         <artifactId>mysql-connector-java</artifactId>

                         <version>5.1.35</version>

                     </dependency>

                  </dependencies>

                  <configuration>

<!--配置文件的路径-->

                        <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>

                     <overwrite>true</overwrite>

                  </configuration>

              </plugin>

      </plugins>

  </build>

</project>



2.resources目录下创建generatorConfig.xml配置文件

内容如下:

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE generatorConfiguration

  PUBLIC "-//mybatis.org//DTDMyBatis Generator Configuration 1.0//EN"

  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

   <context id="test" targetRuntime="MyBatis3">

        <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin> 

        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>

        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>

        <commentGenerator>

            <!-- 这个元素用来去除指定生成的注释中是否包含生成的日期 false:表示保护 -->

            <!-- 如果生成日期,会造成即使修改一个字段,整个实体类所有属性都会发生变化,不利于版本控制,所以设置为true -->

            <property name="suppressDate"value="true" />

            <!-- 是否去除自动生成的注释 true:是 false: -->

            <property name="suppressAllComments"value="true" />

        </commentGenerator>

        <!--数据库链接URL,用户名、密码 -->

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"

           connectionURL="jdbc:mysql://localhost/userdb" userId="******" password="******">

        </jdbcConnection>

        <javaTypeResolver>

            <!-- mybatis里专门用来处理NUMERICDECIMAL类型的策略

               forceBigDecimals:默认是false 是否强制使用BigDecimal来表示所有的十进制和数值字段。 -->

            <property name="forceBigDecimals"value="false" />

        </javaTypeResolver>

        <!-- 生成模型的包名和位置 -->

        <javaModelGenerator targetPackage="com.hf.bean"

           targetProject="src\main\java">

            <property name="enableSubPackages"value="true" />

            <property name="trimStrings"value="true" />

        </javaModelGenerator>

        <!-- 生成映射文件的包名和位置 -->

        <sqlMapGenerator targetPackage="/mapper"

           targetProject="src\main\resources">

            <property name="enableSubPackages"value="true" />

        </sqlMapGenerator>

        <!-- 生成DAO的包名和位置 -->

        <javaClientGenerator type="XMLMAPPER"

           targetPackage="com.hf.dao" targetProject="src\main\java">

            <property name="enableSubPackages"value="true" />

        </javaClientGenerator>

       

        <!-- tableName:要生成哪些表,domainObjectName:生成javabean对象的基本名称 -->

    <table tableName="person" domainObjectName="Person"

           enableCountByExample="false"enableUpdateByExample="false"

           enableDeleteByExample="false"enableSelectByExample="false"

           selectByExampleQueryId="false">

        </table>

   </context>

</generatorConfiguration>


(1)  targetRuntime:此属性用于指定运行时目标生成的代码。

MyBatis3 默认值 将生成对象兼容MyBatis版本3.0和更高版本,和JSE 5.0和更高版本.

   

(2)enableInsert:是否生成插入语句。默认是true

      enableSelectByPrimaryKey:是否通过主键生成选择语句。不管是否有这种设置,如果该表没有一个主键将不会生成。

      enableUpdateByPrimaryKey:是否通过主键生成更新语句。如果该表没有主键,不管是否设置该属性,语句将不会生成。

      enableDeleteByPrimaryKey:是否通过主键生成删除语句。如果该表没有主键,不管是否这种设置该属性,语句将不会生成。

      enableDeleteByExample:是否通过example对象生成删除语句。这个声明使得许多不同的动态删除在运行时生成。

      enableCountByExample:是否通过example对象生成计算行数语句。该语句将返回一个表中的行数相匹配的example

      enableUpdateByExample:是否通过example对象生成更新语句。该语句将更新一个表中相匹配的记录。 

       enableSelectByExample:是否应该生成通过example的选择语句。这个声明使得许多不同的动态查询是在运行时生成。


3. 执行命令mybatis-generator:generate:右键工程àrunàmaven buildà填好命令后执行run

    


4.刷新项目:项目中出现需要的bean,dao和mapper.xml文件

    

至此,mybatis自动生成代码成功完成.


感谢阅读,如有错误,欢迎给以指正!

以上是关于mybatis自动生成代码的主要内容,如果未能解决你的问题,请参考以下文章

使用Mybatis Generator自动生成Mybatis相关代码

mybatis-generator代码生成报错?

mybatis自动生成代码

MyBatis使用Generator自动生成代码

mybatis源码学习利用maven插件自动生成mybatis代码

Mybatis代码自动生成