automybatis mysql_mybatis-plus:使用Mybatis-AutoGenerator代码生成器(1)
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成包括 Entity、Mapper、Mapper XML、Service、Controller 数个模块的代码,可以提升开发效率.
首先,进入 https://start.spring.io 生成一个springboot简单项目
下步,数据表SQL
CREATE TABLE `soldier` (
`soldier_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '士兵编号',
`soldier_name` varchar(30) NOT NULL COMMENT '士兵名字',
`join_army_time` timestamp NOT NULL COMMENT '参军时间',
PRIMARY KEY (`soldier_id`),
KEY `sid` (`soldier_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
依赖
以下有些依赖不1定是必须的,但积累甚多,就一并贴出,
版本号是经过多次甄选的.
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-logging
org.springframework.boot
spring-boot-starter-web-services
org.springframework.boot
spring-boot-devtools
runtime
false
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-starter-freemarker
com.baomidou
mybatis-plus-generator
3.0.7.1
com.baomidou
mybatis-plus-boot-starter
3.1.1
org.mybatis.generator
mybatis-generator-core
1.3.7
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.0
org.springframework.boot
spring-boot-starter-data-jpa
com.github.vindell
spring-boot-starter-log4j2-plus
1.0.5.RELEASE
org.springframework.boot
spring-boot-starter-log4j
1.3.8.RELEASE
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5
org.springframework.session
spring-session-core
org.projectlombok
lombok
com.zaxxer
HikariCP
3.3.1
mysql
mysql-connector-java
8.0.11
org.apache.tomcat.embed
tomcat-embed-jasper
org.apache.activemq
activemq-all
5.15.9
cn.hutool
hutool-all
4.3.1
javax.servlet
javax.servlet-api
javax.servlet
jstl
配置mybatis-plus.properties文件
#此处为本项目src所在路径(代码生成器输出路径)
OutputDir=/home/gzh/eclipse-workspace/Boot-Demo/src/main/java
#mapper.xml的生成位置
OutputDirXml=/home/gzh/eclipse-workspace/Boot-Demo/src/main/resources
#数据库表名(此处切不可为空,如果为空,则默认读取数据库的所有表名)
tableName=soldier
#存放所生成代码文件的上一级包名
#className=自填
#设置作者
author=gene
#正常情况下,下面的代码无需修改
#自定义包路径
parent=cn.example.demo
#数据库地址
url=jdbc:mysql://localhost:3306/test00?serverTimezone=CTT&characterEncoding=UTF-8&useSSL=false
#mysql:username & password
userName=plh
password=1234
Java代码
注意导入的package,不要导错
package cn.example.demo.util;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
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.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
/**
*
* 代码生成器
*
*
* @author gzh
*
*/
public class MybatisPlusGenerator {
public static void main(String[] args) throws InterruptedException {
// 获取Mybatis-Plus.properties文件的配置信息
final ResourceBundle rb = ResourceBundle.getBundle("mybatis-plus");
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(rb.getString("OutputDir"));
gc.setOpen(false);
gc.setBaseResultMap(true);
gc.setBaseColumnList(true);
gc.setAuthor(rb.getString("author"));
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
mpg.setGlobalConfig(gc);
// dataSource配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setUrl(rb.getString("url"));
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername(rb.getString("userName"));
dsc.setPassword(rb.getString("password"));
mpg.setDataSource(dsc);
// package配置
PackageConfig pc = new PackageConfig();
pc.setParent(rb.getString("parent"));
pc.setController("controller");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setEntity("bean");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
/* ... */
}
};
// 如果模板引擎是 freemarker
String templatePath = "/templates/mapper.xml.ftl";
// 自定义输出配置
List focList = new ArrayList<>();
// 自定义配置会被优先输出
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(com.baomidou.mybatisplus.generator.config.po.TableInfo tableInfo) {
// 自定义输入文件名称
return rb.getString("OutputDirXml") + "/mapper/" + tableInfo.getEntityName() + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
mpg.setTemplate(new TemplateConfig().setXml(null));
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setInclude(new String[]{rb.getString("tableName")});
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
System.out.println("done,fresh engineering");
}
}
运行上面的main方法,便可生成 xml/bean/mapper/service/controller 计5个模块的代码.
注:lombok注解@Data要想起作用的话,还要为IDE另外安装lombok插件,具体步骤可单独搜索 ↩
automybatis mysql_mybatis-plus:使用Mybatis-AutoGenerator代码生成器(1)相关推荐
- MyBatis Plus Generator——MyBatis Plus代码生成器DEMO
官方文档 https://mp.baomidou.com/guide/generator.html Maven <dependency><groupId>mysql</g ...
- Mybatis Plus————代码生成器
代码生成器 MyBatis Plus是MyBatis的扩展框架,而代码生成器是MP的核心功能之一,另外还有 "条件构造器"和"通用CRUD"等功能. 步骤演示 ...
- Mybatis Plus 代码生成器-让上班划水不再是梦
文章目录 1. 废话哔哔 2. 开搞 2.1 核心maven依赖 2.2 Spring Boot主要配置 2.3 Mybatis Plus 代码生成器代码 2.4生成的代码结构如下 1. 废话哔哔 不 ...
- 视频教程-MyBatis Generator代码生成器视频教程-Java
MyBatis Generator代码生成器视频教程 Java讲师,多年培训经验,曾参与开发过的项目:某省电信ODS系统.电信自助取数系统.CRM客户关系管理系统.环境应急信息系统.自来水客服系统等. ...
- MyBatis Generator 代码生成器
MyBatis Generator 代码生成器 MyBatis Generator简介 MyBatis Generator(MBG)是MyBatis 的代码生成器.它将为MyBatis的所有版本生成代 ...
- mybatisplus代码生成器_想做时间管理大师?你可以试试Mybatis Plus代码生成器
1. 前言 对于写Crud的老司机来说时间非常宝贵,一些样板代码写不但费时费力,而且枯燥无味.经常有小伙伴问我,胖哥你怎么天天那么有时间去搞新东西,透露一下秘诀呗. 好吧,今天就把Mybatis-pl ...
- mybatis plus 代码生成器
1.功能 替你生成 controller , service ,dao ,mapper, 基本上不要自己创建文件了 2.依赖 mybatis-plus-generator <!-- https: ...
- mybatis maven 代码生成器(mysql)
pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门
点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 一.Mybatis介绍 MyBatis是一个支持普通*SQL*查询,存储过程和高级映射的优秀持 ...
- Spring boot + mybatis + oracle代码生成器
在pom文件中加入依赖 <build><plugins><!--逆向工程--><plugin><groupId>org.mybatis.ge ...
最新文章
- mysql8中怎么增删一列_关于MySQL的增删改查知识
- Arcface v1 论文翻译与解读
- 程序员面试题精选100题(49)-复杂链表的复制[算法]
- Python 必背的42个常见单词,看看你记住了几个?
- 事件查看器ID 1041
- Unity URP中的多Pass Shader和Planer shadow
- 计算机辅助初中英语教学,计算机辅助初中英语阅读教学的-研究.pdf
- android的动态注册,Android JNI 函数注册的两种方式(静态注册/动态注册)
- 高精度事件计时器怎么关闭_Node.js 事件循环
- linux程序流量平滑,Linux下按程序查实时流量 network traffic(示例代码)
- rabbitmq 发送的用户名是什么
- quartz job基本运用
- ElasticJob‐Lite:自定义作业分片策略
- MacOS为什么无法删除ABC或日语输入法
- Facebook正式改名 要砸600亿做这件事 改名转运能拯救这张“脸”吗?
- php 干扰曲线,曲线干扰控制
- ESP32 学习笔记(二十六)NVS
- 计算机图形学——游戏方向 第一章 计算机图形学概述
- 字符串短横线和驼峰形式的互相转换 Javascript
- 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)