SpringBoot——使用mybatis generator自动生成代码

mybatis要写许多xml文件,sql语句,dao接口,但大部分都是通用的增删改查操作。繁琐的编写让人头痛,单从这一点来说jpa更方便。

为了解决这个问题,mybatis generator插件应运而生,能够通过数据库表自动生成三个文件:

  • Dao接口
  • 表对应的实体类
  • mapper.xml文件

先创建一个表用来测试:

CREATE TABLE `t_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `telephone` varchar(255) DEFAULT '' COMMENT '手机号',
  `user_address` varchar(255) DEFAULT '' COMMENT '地址',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

然后修改pom.xml,添加插件

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.6</version>
    <configuration>
        <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
        <overwrite>true</overwrite>
        <verbose>true</verbose>
    </configuration>
</plugin>

在resources/generator目录下创建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\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1/demo" userId="root" password="root">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="mybatis" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="t_info" domainObjectName="Info"  enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

根据你本地的实际情况修改上面配置文件,更多配置项可以参考官方文档:http://www.mybatis.org/generator/configreference/xmlconfig.html

点击run Edit Configurations:
这里写图片描述

添加maven,修改name 和 command line:
这里写图片描述

mybatis-generator:generate -e

点击确定,然后就可以点击绿色三角形运行了:
这里写图片描述

运行成功,生成三个文件:
这里写图片描述

生成的dao接口文件和mapper文件都是以mapper结尾,如果你想修改后缀,可以修改配置文件中的table标签,使用mapperName指定名称

<table tableName="t_info" domainObjectName="Info"  mapperName="InfoDao"></table>

但是两个文件都会改成Dao后缀,本人比较习惯接口命名为Dao,xml文件命名为Mapper,要解决这个问题,只能修改源码,或者手动修改,这里不具体阐述了。

注意:如果你修改了dao接口和实体类的内容,再次运行generator将会覆盖旧文件,这点要谨慎。从运行时控制台输出的信息也能看到:

这里写图片描述

阅读更多

扫码向博主提问

君君要上天

博客专家

非学,无以致疑;非问,无以广识
去开通我的Chat快问
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010837612/article/details/80351591
个人分类: SpringBoot
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭