Mybatis-plus自动生成成实体类MapperMapper.xml(超级详细)
Posted 不穿脚的鞋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-plus自动生成成实体类MapperMapper.xml(超级详细)相关的知识,希望对你有一定的参考价值。
首先导入依赖
1、maven项目中pom.xml中导入下面的依赖
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
这样👇
2、在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:\\Develop\\Maven\\mysql\\mysql-connector-java\\8.0.30\\mysql-connector-java-8.0.30.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码
1.一般jdbc数据库的版本6.x以上,都是com.mysql.cj.jdbc.Driver 其他的低版本就是com.mysql.cj.jdbc.Driver
-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/xinjian?serverTimezone=UTC&ampuseUnicode=true&characterEncoding=utf-8"
userId="***" password="***">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类的包名和位置-->
<javaModelGenerator targetPackage="com.zxwl.xinjian.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成mapper映射文件的包名和位置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成mapper的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.zxwl.xinjian.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName:数据库中的表名或视图名 domainObjectName:实体类名-->
<!--<table tableName="blog" domainObjectName="Blog"></table>-->
<table tableName="ap_user" domainObjectName="ApUser"></table>
</context>
</generatorConfiguration>
注意这些地方一定要看好👇
1、数据库
2、驱动包
3、文件位置
改好之后运行mybatis-generator
运行就好了哦
运行完成是这样的👇
干饭去了有缘再见ヾ(•ω•`)o
Mybatis-plus 实体类继承关系 插入默认值
在实际开发中,会定义一些公共字段,而这些公共字段,一般都是在进行操作的时候由程序自动将默认值插入。而公共的字段一般会被封装到一个基础的实体类中,同时实体类中会实现相应的getter setter 方法(注:如果使用了Lombok 插件,就没有getter setter方法,相关注解请自行了解),同时,会用到相关注解。在下文中会一一讲到。
本文的技术选型为: springboot 2.2.2 + mybatis-plus 3, maven构建项目
相关依赖:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.0</version> </dependency>
实体类:
将公共字段封装到基类中,供其他业务实体类进行调用
package com.hl001.system.base.entity; import java.io.Serializable; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import cn.afterturn.easypoi.excel.annotation.Excel; public class HEntity implements Serializable { private static final long serialVersionUID = 1L; @TableField(value="crt_code",fill = FieldFill.INSERT) @Excel(name = "创建人编码", width = 15) private String crtCode; @TableField(value="crt_name",fill = FieldFill.INSERT) @Excel(name = "创建人", width = 15) private String crtName; @Excel(name = "创建时间", width = 15,format = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(value="crt_dt",fill = FieldFill.INSERT) private Date crtDt; @TableField(value="proj_code",fill = FieldFill.INSERT) @Excel(name = "项目编码", width = 15) private String projCode; @TableField(value="comp_code",fill = FieldFill.INSERT) @Excel(name = "公司编码", width = 15) private String compCode; @TableField(value="org_code",fill = FieldFill.INSERT) @Excel(name = "组织机构码", width = 15) private String orgCode; // 省略 getter setter 方法 }
注解解释:
@TableField(value="crt_code",fill = FieldFill.INSERT): 该注解主要是Mybatis 插入默认值 value值为数据库表中的字段,file是用来指定策略的,可以新增时插入,也可以修改时插入
@Excel(name = "创建人编码", width = 15) // 用于 Excel 导入导出(此处不做交多阐述)
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") // JSON 日期格式
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")// 日期格式转换
业务类继承基础实体类进行共有字段扩展
创建Mybatis plus 拦截器的配置
/** * 自动填充功能 * @return */ @Bean public GlobalConfig globalConfig() { GlobalConfig globalConfig = new GlobalConfig(); globalConfig.setMetaObjectHandler(new MetaHandler()); return globalConfig; }
@Component public class MetaHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { // 插入操作时,添加默认数据 SysUser user = ResourceUtil.getSessionUser();
// 注意 第一个参数必须和实体类中的参数名一致,否则会报错 this.setFieldValByName("crtName", user.getRealname(), metaObject); this.setFieldValByName("crtCode", user.getUsername(),metaObject); this.setFieldValByName("crtDt", new Date(),metaObject); this.setFieldValByName("projCode","ss" ,metaObject); this.setFieldValByName("orgCode", "ssss",metaObject); this.setFieldValByName("compCode", "来了老弟",metaObject); } @Override public void updateFill(MetaObject metaObject) {// 更新操作时 添加默认数据 // TODO Auto-generated method stub }
单元测试 。。。。 省略
至此 Mybatis-plus 的默认值插入就已经完成了。
以上是关于Mybatis-plus自动生成成实体类MapperMapper.xml(超级详细)的主要内容,如果未能解决你的问题,请参考以下文章
springboot——Mybatis-Plus + MybatisX插件快速开发