Mybatis-generator自动生成器
Easy Code
Mybatis-generator 自动生成器这玩意是我在自学的时候, 看到的工具. 其实我没怎么使用这个. 我在工作的时候使用的是 Easy Code 这个插件, 我觉得还不错, 挺好用的, 有兴趣可以用一下 Easy Code
前言牢骚
最近衰到了极点,SpringCloud 有一个问题怎么都解决不了,Oracle 也有一个问题解决不了,Vue 也有一个问题解决不了,现在 Mybatis-generator 也是网上搜了各种文章,结果发现,你搜一个知识点,网上的文章大多数都是抄袭的,一模一样的文章到处是,我深深的怀疑这些复制粘贴的博主,傻逼?你复制个博客你就会了?复制博客自己不测试一下,全是错的你知道吗?
还有,听说码农教程这个傻逼网站在复制我的博客
我现在先测试一下,骂一下码农教程是傻逼,我看看傻逼网站复制之前有没有审核,嘻嘻
Mybatis-generator 是什么?
书归正传,Mybatis-generator 是什么?在使用 Mybatis 的时候,dao 接口,entity 实体类,还有每个实体类对应的 xml 都得自己写吧,这其实也是工作量稍微大一点的事情,而我们的插件 Mybatis-generator 就是自动生成这些代码的
Mybatis-generator 怎么使用?
第一步,Maven 文件引用
首先,新建一个过程,带 Maven 就行,我新建了一个 SpringBoot 项目,pom.xml 文件需要添加 4 个引用,如下
<dependencies>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.mybatis.spring.boot<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mybatis-spring-boot-starter<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>2.0.1<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>mysql<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mysql-connector-java<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>8.0.15<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.mybatis.generator<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mybatis-generator-core<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.3.7<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependencies</span>></span>
<span class="hljs-tag"><<span class="hljs-name">build</span>></span>
<span class="hljs-tag"><<span class="hljs-name">plugins</span>></span>
<span class="hljs-tag"><<span class="hljs-name">plugin</span>></span>
<span class="hljs-comment"><!--Mybatis-generator插件,用于自动生成Mapper和POJO--></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.mybatis.generator<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mybatis-generator-maven-plugin<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.3.2<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"><<span class="hljs-name">configuration</span>></span>
<span class="hljs-comment"><!--配置文件的位置--></span>
<span class="hljs-tag"><<span class="hljs-name">configurationFile</span>></span>src/main/resources/mybatis/mybatis-generator.xml<span class="hljs-tag"></<span class="hljs-name">configurationFile</span>></span>
<span class="hljs-tag"><<span class="hljs-name">verbose</span>></span>true<span class="hljs-tag"></<span class="hljs-name">verbose</span>></span>
<span class="hljs-tag"><<span class="hljs-name">overwrite</span>></span>true<span class="hljs-tag"></<span class="hljs-name">overwrite</span>></span>
<span class="hljs-tag"></<span class="hljs-name">configuration</span>></span>
<span class="hljs-tag"><<span class="hljs-name">executions</span>></span>
<span class="hljs-tag"><<span class="hljs-name">execution</span>></span>
<span class="hljs-tag"><<span class="hljs-name">id</span>></span>Generate MyBatis Artifacts<span class="hljs-tag"></<span class="hljs-name">id</span>></span>
<span class="hljs-tag"><<span class="hljs-name">goals</span>></span>
<span class="hljs-tag"><<span class="hljs-name">goal</span>></span>generate<span class="hljs-tag"></<span class="hljs-name">goal</span>></span>
<span class="hljs-tag"></<span class="hljs-name">goals</span>></span>
<span class="hljs-tag"></<span class="hljs-name">execution</span>></span>
<span class="hljs-tag"></<span class="hljs-name">executions</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependencies</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.mybatis.generator<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mybatis-generator-core<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.3.2<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependencies</span>></span>
<span class="hljs-tag"></<span class="hljs-name">plugin</span>></span>
<span class="hljs-tag"></<span class="hljs-name">plugins</span>></span>
<span class="hljs-tag"></<span class="hljs-name">build</span>></span>
</project>
我来解释一下
- mybatis-spring-boot-starter mybatis 的 SpringBoot 版本,这个肯定需要吧
- mysql-connector-java 我的数据库是 mysql,这里我用了最新的 8 版本,需要注意的是,我电脑上安装的 mysql 就是最新版的,所以我只能选 8 版本之后的,旧版不行
- mybatis-generator-core 插件,也得要吧
- plugin 下面的 plugin 插件那里,复制我的就可以了,需要注意的是 src/main/resources/mybatis/mybatis-generator.xml 这个路径是我自己的,你自己改一下你的 mybatis-generator.xml 的路径,这个文件接下来建
第二步,数据库建立
数据库建两个表吧,我把我的贴出来,你想自己写就自己写,不想写就复制我的
-- auto-generated definition
create table user_info
(
id int not null,
name varchar(10) charset utf8 not null,
gender varchar(10) charset utf8 null,
age int null,
phone varchar(20) null,
register_mode varchar(20) null comment '注册方式,例如手机注册,微信注册等',
third_party_id varchar(64) null comment '第三方 id,例如微信的 id',
constraint user_info_id_uindex
unique (id)
);
alter table user_info
add primary key (id);
-- auto-generated definition
create table user_password
(
id int not null
primary key,
encrypt_password varchar(128) not null,
user_id int not null
);
数据库是 miaosha,自己新建数据库,然后执行上面的创建表的语句。数据暂时不需要
第三步,写 mybatis-generator.xml
最后一步了,这个 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:\Java\apache-maven-3.5.4\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar"/>
<context id="context" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 数据库链接地址账号密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/miaosha?serverTimezone=UTC" userId="root" password="123">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成 Model 类存放位置 -->
<javaModelGenerator targetPackage="com.miaosha.dataobject" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件存放位置 -->
<sqlMapGenerator targetPackage="mybatis.mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成 Dao 类存放位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.miaosha.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 生成对应表及类名 -->
<table tableName="user_info" domainObjectName="userDAO" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
<table tableName="user_password" domainObjectName="userpasswordDAO" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
需要改的地方:
- location="D:\Java\apache-maven-3.5.4\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar" 这个 location 啊,这一点我是真的无语,非得写绝对路径?我暂时不知道其他的写法,网上的文章这一块都是瞎几把写的。这里你就写你的 Maven 仓库的路径就可以了,找到 mysql 的 jar,和 maven 里面引用的 mysql 的版本一致
- 这个需要改,你自己写吧,mysql8 版本之后需要加 com.mysql.cj.jdbc.Driver,加上 cj。还有,数据库后面跟上这个时区?serverTimezone=UTC
- model 和 mapper 没啥改的,包名改成你的,路径就是 src/main/resources 或者 java
- 最后这个也简单,表名一写,dao 名一写,完事
第四步,运行
这个很简单,编辑配置,新建 maven,然后输入图中的内容,直接运行即可
mybatis-generator:generate