spring boot +mybatis + generator 代码自动生成
因为项目时间紧迫,需要提高开发效率,故学习使用mybatis的generator插件自动生成代码,在参考其他博客代码的过程中,按照其中一部分博客写的方法并不能把项目运行起来(本人在运行demo过程中未解决自己实际遇到的问题),特此写下此篇博客,记录下实际可以运行的方案,以便以后再次使用。
参考原文:https://blog.csdn.net/u010837612/article/details/80351591
一、简介
1.1 MyBatis Generator介绍
mybatis要写许多xml文件,sql语句,dao接口,但大部分都是通用的增删改查操作。繁琐的编写让人头痛,单从这一点来说jpa更方便。
MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper、dao、entity 的框架,让我们省去规律性最强的一部分最基础的代码编写。
1.2 MyBatis Generator使用
MyBatis Generator的使用方式有4种:
命令行生成
Maven方式生成
使用Ant任务生成
使用Java代码生成
其中推荐使用Maven方式进行代码生成,因为集成和使用比较简单。
1.3 开发环境(参考个人实际情况)
MySQL:8.0.12
MyBatis Generator:1.3.7
Maven:4.0
IDEA:2018.2
二、使用Mysql数据库
新建数据库,先建立一个数据表来测试:
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;
三、代码自动生成配置
最推荐使用的是Maven方式,下面是Maven方式的MyBatis代码生成,分为四步:
Step 1:添加和mysql、mybatis相关的依赖(参考,以下只贴出一部分)
<!--mysql jdbc驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency>
Step 2:添加插件(很重要)
<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>
Step 3:
可根据自己的实际情况调整目录结构,同时修改xml配置文件的文件路径等关键信息,也可以将xx.xml文件中的部分通用配置信息放在xx.properties文件中。
在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>
Step 3:点击Maven生成代码
根据你本地的实际情况修改上面配置文件,更多配置项可以参考官方文档: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> 1
但是两个文件都会改成Dao后缀,本人比较习惯接口命名为Dao,xml文件命名为Mapper,要解决这个问题,只能修改源码,或者手动修改,这里不具体阐述了。
注意:如果你修改了dao接口和实体类的内容,再次运行generator将会覆盖旧文件,这点要谨慎。从运行时控制台输出的信息也能看到:
- SpringBoot学习教程 - 06 - 集成MyBatis Generator自动生成代码
- 基于SpringBoot+Springmvc+mybatis+mybatis-generator代码自动生成的框架。
- springboot 整合 MyBatis 使用generator自动生成代码
- Intellij IDEA springboot maven 配置mybatis-generator,自动从数据库中生成代码
- SpringBoot学习-如何使用mybatis-generator-maven-plugin自动生成代码
- springboot-mybatis-generator 自动生成代码
- spring boot配置mybatis代码自动生成(mybatis通用mapper相关基础代码自动生成)
- springboot使用generator-mybatis插件自动生成mybatis文件
- SpringBoot+mybatis plus的代码自动生成
- Springboot:用mybatis-generator自动生成bean和dao
- SpringBoot系列: 使用MyBatis maven插件自动生成java代码
- spring boot中使用generator插件自动生成代码
- SpringBoot之mybatis-generator自动生成
- springboot(四) 用mybatis-generator自动生成bean和dao
- spring boot 自动生成mybatis代码
- 使用Eclipse的Generator MyBatis/iBatis Artifacts插件自动生成代码,与spring集成
- spring boot中使用mybatis自动生成代码
- (二十二)SpringBoot之使用mybatis generator自动生成bean、mapper、mapper xml
- Spring Boot (七)MyBatis代码自动生成和辅助插件
- spring-boot集成mybatis问题1:IntellijIdea中j解决自动生成代码xml配置文件中出现“uri is not registered”问题