前言
为啥要使用mybatis-generator
- 写一大推的实体类、mybatis中的mapper类和sql文件很累(整个项目只有一个表的同学请安静,别抬杠!)
- 不太记得mapper类和sqlmapper映射文件的格式了,有点尴尬
- 分模块开发时,给其他人拷贝一大推的基础类,很傻哦
使用mybatis-generator的好处
- 只要你数据库设计好了,快速帮你生成实体类,不用再哼哧哼哧的撸代码了
- 可灵活的配置脚本,从一个数据库或多个数据库生成实体类和sqlmapper
- 开发体验很好,省去大量的重复工作,直接可以开始撸业务代码了
话不多说,开始搞起来
完成以下步骤,帮你搞定项目基础框架
1 修改pom文件
<!--mybatis 代码生成器插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<!--配置文件的位置-->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
</plugin>
2 配置生成mybatis-generator代码生成脚本
- 在resources文件夹下新建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="D:\soft\dev\Maven_Repository\mysql\mysql-connector-java\8.0.13\mysql-connector-java-8.0.13.jar"/>
<!-- 一个数据库一个context -->
<context id="boot" 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://localhost:3306/boot?serverTimezone=GMT%2B8"
userId="root"
password="123$%^">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.zyu.boot.demo.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="sqlmapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.zyu.boot.demo.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="t_user" domainObjectName="User" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- 使用数据库字段名作为实体类的属性 -->
<property name="useActualColumnNames" value="true"/>
</table>
</context>
</generatorConfiguration>
上面配置都有解释,这里就不赘述了,其实很简单
3 在maven依赖树中点击生成插件
运行截图如下
这三个文件都生成了,大功告成!!!
user表的sql脚本
CREATE TABLE `t_user` (
`userid` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '用户id主键',
`name` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
`gender` bit(1) NOT NULL COMMENT '性别:0男性 1女性',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`createDate` datetime DEFAULT NULL COMMENT '创建时间',
`role` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '0' COMMENT '角色:0普通用户 1管理员',
PRIMARY KEY (`userid`),
UNIQUE KEY `userid_index` (`userid`) USING BTREE COMMENT '用户id索引,方便根据id查询'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
结束语
别忘了,将本次的项目变更提交到git