一.引言
- MyBatis-Plus(简称MP)是MyBatis增强工具,在原来基础上不做改变,为简化开发、提高效率而生。
- MyBatis Generator 是MyBatis 官方出品的一款,用来自动生成MyBatis的 mapper、dao、entity 的框架,让我们省去规律性最强的一部分最基础的代码编写。
- 使用方式:命令行、Maven、Ant任务、Java代码;推荐Maven,因为集成和使用简单
二.使用示例
- 添加依赖
配置pom.xml文件,增加依赖和配置生成文件(“generatorConfig.xml” 个性化配置)路径
依赖:
org.mybatis.generator:根据数据库中的表 反向生成实体,dao,mapper(也可使用oracle驱动)
<!-- mybatis-generator-core 反向生成java代码-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
插件:
注意,如果本地库中没有驱动jar包,需要先放到依赖下载,再挪到插件下边
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
<configuration>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
<!-- 是否覆盖 -->
<overwrite>true</overwrite>
<!-- 自动生成的配置、配置文件的路径 -->
<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
</plugin>
- 添加配置文件
根据上面在pom里的配置,我们需要添加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:\maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>-->
<context id="mysql" targetRuntime="MyBatis3">
<!--自动生成一些东西hashcode、序列化、tostring-->
<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
<plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
<commentGenerator>
<!--是否支持日期格式 -->
<property name="suppressDate" value="true"/>
<!--是否去除自动生成注释 true关闭自动生成注释 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/abc"
userId="root"
password="root"></jdbcConnection>
<!--java类型解析,用于一些比较特殊的数据类型-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model类存放位置包名和位置(生成实体类的包)-->
<javaModelGenerator targetPackage="com.abc.entity" targetProject="./src/main/java">
<!--是否合并包:类和包建立联系-->
<property name="enableSubPackages" value="true"/>
<!--去String类型中的空格-->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置(生成mapper.xml文件)-->
<sqlMapGenerator targetPackage="com.abc.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao类存放位置(生成dao接口,其实dao接口也称mapper)-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.abc.dao"
implementationPackage="com.abc.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名-->
<!--
是否生成enableCountByExample 查询条数
是否生成根据条件更新 enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
-->
<!--生成哪些表、生成的实体类名称名,多个表就多个table-->
<table tableName="abc_admin" domainObjectName="Admin"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
- 启动插件
右侧的Maven中,Pligins — mybatis-generator — 启动 bulidsuccess - 生成的接口内容
public interface AdminMapper {
//根据id删除
int deleteByPrimaryKey(String id);
//插入(空插入为null)
int insert(Admin record);
//插入(空则不插入)
int insertSelective(Admin record);
//根据id查一个
Admin selectByPrimaryKey(String id);
//根据id修改(null则不会修改)
int updateByPrimaryKeySelective(Admin record);
//根据id修改(null也会修改)
int updateByPrimaryKey(Admin record);
//注意:官方不提供查询所有操作
}
三.其他补充
- 设置实体和表的字段映射(起别名)
在<table标签中加:
<!--起别名:列名,实体属性名(自定义成驼峰命名)-->
<columnOverride column="" property=""/>
- MyBatis通用mapper开发,对mybatis进一步封装【 https://www.oschina.net/news/94347/mapper-4-0-released 】
- 建议安装一款免费的IDEA插件“Free MyBatis plugin”,可以实现dao到mapper xml对应方法的快速映射,点击任意一个快速调整到相应的方法,提高工作效率。(绿色箭头,对应跳转)