MybatisPlus代码生成器的使用方法详解

网友投稿 229 2023-01-07

MybatisPlus代码生成器的使用方法详解

搭建测试的数据库和表数据的SQL

/*

Navicat Premium Data Transfer

Source Server : mysql8.0

Source Server Type : MySQL

Source Server Version : 80022

Source Host : localhost:3306

Source Schema : mybatisplus

Target Server Type : MySQL

Target Server Version : 80022

File Encoding : 65001

Date: 11/06/2021 17:37:58

*/

SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for user

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` bigint(0) NOT NULL COMMENT '主键ID',

`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',

`age` int(0) NULL DEFAULT NULL COMMENT '年龄',

`email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',

`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',

`update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',

`version` int(0) NULL DEFAULT NULL COMMENT '版本号',

`deleted` tinyint(1) NULL DEFAULT NULL COMMENT '用于逻辑删除',

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES (1, 'Jone', 18, 'test1@baomidou.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (2, 'Jack', 20, 'test2@baomidou.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (3, 'Tom', 38, 'test3@baomidou.com', NULL, '2021-04-11 16:13:56', NULL, NULL);

INSERT INTO `user` VALUES (4, 'Sandy', 21, 'test4@baomidou.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (5, 'Billie', 24, 'test5@baomidou.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (1381145367839522818, '李白', 28, 'lucy@qq.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (1381156317133090817, 'lili', 28, 'lucyee@qq.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (1381157235618492418, 'lili', 28, 'lucyee@qq.com', NULL, NULL, NULL, NULL);

INSERT INTO `user` VALUES (1381158109963096065, 'lili', 28, 'lucyee@qq.com', '2021-04-11 16:12:09', NULL, NULL, NULL);

INSERT INTO `user` VALUES (1381166877736280066, '江小白', 200, 'lucyee@qq.com', '202hQGLmoIaf1-04-11 16:46:59', '2021-04-11 16:51:57', 2, NULL);

INSERT INTO `user` VALUES (1381186511252258818, '东方不败', 200, 'lucyee@qq.com', '2021-04-11 18:05:00', '2021-04-11 18:05:47', 2, 1);

INSERT INTO `user` VALUES (1381225266432524290, '东方不败11', 28, 'lucyee@qq.com', '2021-04-11 20:39:00', '2021-04-11 20:39:00', 1, NULL);

SET FOREIGN_KEY_CHECKS = 1;

引入Maven的配置文件

在这里我多引入了swagger测试接口的依赖,因为在MybatisPlus的配置文件里,可以配置自动添加swagger的注解。用于测试接口时的标识。

com.baomidou

mybatis-plus-boot-starter

3.0.5

org.apache.velocity

velocity-engine-core

2.0

io.springfox

sprinhttp://gfox-swagger2

2.7.0

provided

io.springfox

springfox-swagger-ui

2.7.0

provided

编辑MybatisPlus的配置文件

在配置文件里有很多的注释,你可以根据注释来理解配置文件,并且改成和自己数据库对应的配置

package com.atguigu.demo;

import com.baomidou.mybatisplus.annotation.DbType;

import com.baomidou.mybatisplus.annotation.IdType;

import com.baomidou.mybatisplus.generator.AutoGenerator;

import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

import com.baomidou.mybatisplus.generator.config.GlobalConfig;

import com.baomidou.mybatisplus.generator.config.PackageConfig;

import com.baomidou.mybatisplus.generator.config.StrategyConfig;

import com.baomidou.mybatisplus.generator.config.rules.DateType;

import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import org.junit.Test;

/**

* @author huiXing

* @since 2018/12/13

*/

public class CodeGenerator {

@Test

public void run() {

// 1、创建代码生成器

AutoGenerator mpg = new AutoGenerator();

// 2、全局配置

GlobalConfig gc = new GlobalConfig();

String projectPath = System.getProperty("user.dir");

gc.setOutputDir(projectPath + "/src/main/java");

gc.setAuthor("huiXing");

gc.setOpen(false); //生成后是否打开资源管理器

gc.setFileOverride(false); //重新生成时文件是否覆盖

gc.setServiceName("%sService"); //去掉Service接口的首字母I

gc.setIdType(IdType.ID_WORKER_STR); //主键策略

gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型

gc.setSwagger2(true);//开启Swagger2模式

mpg.setGlobalConfig(gc);

// 3、数据源配置

DataSourceConfig dsc = new DataSourceConfig();

dsc.setUrl("jdbc:mysql://localhost:3306/fyDatabase?serverTimezone=GMT%2B8");

dsc.setDriverName("com.mysql.cj.jdbc.Driver");

dsc.setUsername("root");

dsc.setPassword("123456");

dsc.setDbType(DbType.MYSQL);

mpg.setDataSource(dsc);

// 4、包配置

PackageConfig pc = new PackageConfig();

pc.setModuleName("production"); //模块名

pc.setParent("com.fuyuan.springboot");

pc.setController("controller");

pc.setEntity("entity");

pc.setService("service");

pc.setMapper("mapper");

mpg.setPackageInfo(pc);

// 5、策略配置

StrategyConfig strategy = new StrategyConfig();

strategy.setInclude("tb_production");

strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略

// strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀

strategy.setTablePrefix("tb" + "_"); //生成实体类时 去掉前缀t_

strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略

strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作

strategy.setRestControllerStyle(true); //restful api风格控制器

strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符

mpg.setStrategy(strategy);

// 6、执行

mpg.execute();

}

}

配置application.properties文件

# 服务端口

server.port=8009

# mysql数据库连接

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=GMT%2B8

spring.datasource.username=root

spring.datasource.password=123456

#返回json的全局时间格式

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

spring.jackson.time-zone=GMT+8

#mybatis-plus日志

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

编辑完毕了之后直接运行测试类就可以自动生成开发所需要的代码了

当你看到有代码自动生成出来了说明你成功了:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现斗地主之洗牌发牌
下一篇:api接口怎么用在网站上(api接口怎么用在网站上)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~