Mybatis——自动生成代码]()

本篇文章所说的自动生成代码,具体来说是生成maven工程路径src/main/java下的包和实体类以及src/main下的resources文件夹(其中有个映射xml文件),是用于生成动态SQL操作相关的代码。

外部实现步骤:

1.先准备下载一个mybatis-generator-core-1.3.7.jar,还有xml文档generatorConfig.xml、start.bat。如图:

在这里插入图片描述

其中MyBatis Generator是一款mybatis自动代码生成工具,可以通过配置后自动生成文件。generatorConfig.xml:配置文件,可以通过此文件修改,生成符合自己需求的代码。

src文件夹:生成的代码主要在此文件夹下。

start.bat:是windos下的批处理文件件,包含一条或多条命令。

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="C:\Users\LENOVO\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar" />
	
	<!--
     targetRuntime常用值:
        MyBatis3Simple(只生成基本的CRUD和少量的动态SQL)
        MyBatis3(生成完整的CRUD,包含CriteriaAPI方法Example后缀的方法)
     -->
    <context id="localhost_mysql" targetRuntime="MyBatis3">

        <!-- 不生成注解 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test?characterEncoding=utf8&amp;serverTimezone=UTC"
                        userId="root"
                        password="root">
        </jdbcConnection>

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

		<!-- 生成实体类 -->
        <javaModelGenerator targetPackage="com.training.spring.bean" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

		<!-- 生成XML Mapper -->
        <sqlMapGenerator targetPackage="src/main/resources/mapper" targetProject=".">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

		<!-- 生成Mapper接口 -->
        <!-- 生成的Mapper类型:ANNOTATEDMAPPER(注解)、MIXEDMAPPER(混合)、XMLMAPPER(XML) -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.training.spring.mapper"  targetProject="src/main/java">
            <!-- 是否将数据库中的schema作为包名的一部分,默认就是false -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        
        <table schema="test" tableName="student" domainObjectName="Student"
               enableCountByExample="false">
            <!-- 是否用数据库中的字段名作为POJO属性名(不自动转小驼峰),默认值是false -->

            <!--
            <property name="useActualColumnNames" value="true"/>
            -->
            <!-- 生成代码时支持获取插入数据后自增的ID, 需要通过sqlStatement配置数据库类型。 -->

            <generatedKey column="id" sqlStatement="mysql" identity="true" />

            <!-- 此标签用于在生成代码时忽略数据库中的某个字段 -->
            <!--
            <ignoreColumn column="FRED" />
            -->
            <!-- 通过此标签重写mybatis从数据库读到的元信息,自定义列相关配置,包括(名称、类型) -->
            <!--
            <columnOverride column="aa" property="sname" />
            -->
        </table>
    </context>
</generatorConfiguration>

3.编写start.bat

关于bat文件:bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下输入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。

start.bat中包含命令:

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

echo “生成成功”
pause

鼠标双击此文件进入命令行窗口,自动执行所包含命令,即开始生成代码。

4.结果
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上面图中生成的文件路径、名称都可在generatorConfig.xml配置文件修改。

生成之后,把所需文件夹及文件复制粘贴至自己的maven工程中即可(位置自己理解)

maven工程自动生成操作步骤

1.在maven项目的pox.xml引入依赖,位置:【build标签下】

 <plugins>
      <plugin>
         <groupId>org.mybatis.generator</groupId>
         <artifactId>mybatis-generator-maven-plugin</artifactId>
        </plugin>
    </plugins>

2.在maven项目的pox.xml添加依赖,位置:【pluginManagement标签下的plugins内】

<plugin>                  					          <groupId>org.mybatis.generator</groupId>
 <artifactId>mybatis-generator-maven-plugin</artifactId>
  <version>1.3.5</version>
   			<configuration>
                  <verbose>true</verbose>
                   <overwrite>true</overwrite>
              </configuration>
  </plugin>

3.配置文件建在resources,文件名generatorContext.xml

在这里插入图片描述

generatorContext.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:\Mavenpath\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar" />

    <!--
     targetRuntime常用值:
        MyBatis3Simple(只生成基本的CRUD和少量的动态SQL)
        MyBatis3(生成完整的CRUD,包含CriteriaAPI方法Example后缀的方法)
     -->
    <context id="localhost_mysql" targetRuntime="MyBatis3">

        <!-- 不生成注解 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
<!--此处数据库需要改为自己的-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/bookasp?characterEncoding=utf8&amp;serverTimezone=UTC"
                        userId="root"
                        password="root">
        </jdbcConnection>

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

        <!-- 生成实体类 目录结构按照自己的需要 -->
        <javaModelGenerator targetPackage="test.spring.bean" targetProject="src/main/java">
            <property name="enableSubPackages" value="false" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成XML Mapper 目录结构按照自己需要设置 -->
        <sqlMapGenerator targetPackage="src/main/resources/mappers" targetProject=".">
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 生成Mapper接口 -->
        <!-- 生成的Mapper类型:ANNOTATEDMAPPER(注解)、MIXEDMAPPER(混合)、XMLMAPPER(XML) -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="test.spring.mapper"  targetProject="src/main/java">
            <!-- 是否将数据库中的schema作为包名的一部分,默认就是false -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
		<!--数据库的表名-->
        <table schema="bookasp" tableName="message" domainObjectName="Message"
               enableCountByExample="false">
            <!-- 是否用数据库中的字段名作为POJO属性名(不自动转小驼峰),默认值是false -->

            <!--
            <property name="useActualColumnNames" value="true"/>
            -->
            <!-- 生成代码时支持获取插入数据后自增的ID, 需要通过sqlStatement配置数据库类型。 -->

            <generatedKey column="id" sqlStatement="mysql" identity="true" />

            <!-- 此标签用于在生成代码时忽略数据库中的某个字段 -->
            <!--
            <ignoreColumn column="FRED" />
            -->
            <!-- 通过此标签重写mybatis从数据库读到的元信息,自定义列相关配置,包括(名称、类型) -->
            <!--
            <columnOverride column="aa" property="sname" />
            -->
        </table>
    </context>
</generatorConfiguration>

4.点击maven在Plugins下出现mybatis-generator(首先你已添加了依赖)
在这里插入图片描述

5.点开双击mybatis-generator:generate就可自动生成一些与数据库操作的代码代码

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐