mybatis_plus插件——生成器
最近在学习mybatis框架,虽然已经简化了一些Dao代码,但是还想更上一层楼吗?不再被基本的pojo层,controller层,service层,dao层基本重复代码所困恼吗?这里,让我们来学习一下mybatis plus生成器吧,实现mybatis的逆向工程,最好是以springboot结合。
一、导入maven依赖,注意版本,以及编写生成器主类
- <!--springboot使用mybatis-plus,所需要的2个依赖jar包-->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus</artifactId>
- <version>2.1.9</version>
- </dependency>
- <dependency>
- <!--mybatis自动装配必须要-->
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
- <version>1.3.2</version>
- </dependency>
- package com.ljg.generator;
- import com.baomidou.mybatisplus.enums.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.DbType;
- import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
- import java.sql.SQLException;
- public class MyBatisPlusGenerator {
- public static void main(String[] args) throws SQLException {
- String tableName="user";//表名,记得创建号数据库表哦
- AutoGenerator mpg = new AutoGenerator();
- // 选择 freemarker 引擎,默认 Veloctiy
- //1. 全局配置
- GlobalConfig config = new GlobalConfig();
- config.setActiveRecord(true) // 是否支持AR模式
- .setAuthor("Ljg") // 作者
- .setEnableCache(false)// XML 二级缓存
- .setOutputDir("D:\\IdeaProject\\mybatis_plus_demo\\src\\main\\java") // 生成路径
- .setFileOverride(true) // 文件覆盖
- .setIdType(IdType.AUTO) // 主键策略
- .setBaseResultMap(true)//生成基本的resultMap
- .setBaseColumnList(true)//生成基本的SQL片段
- /* 自定义文件命名,注意 %s 会自动填充表实体属性! */
- .setMapperName("I%sDao")
- .setXmlName("I%sDao")
- .setServiceName("I%sService")
- .setServiceImplName("%sServiceImpl")
- .setControllerName("%sController");
- mpg.setGlobalConfig(config);
- //2. 数据源配置
- DataSourceConfig dsConfig = new DataSourceConfig();
- dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
- .setDriverName("com.mysql.jdbc.Driver")
- .setUrl("jdbc:mysql://172.1.10.24/zz?useUnicode=true&characterEncoding=utf-8")
- .setUsername("root")
- .setPassword("123456");
- mpg.setDataSource(dsConfig);
- //3. 策略配置globalConfiguration中
- StrategyConfig stConfig = new StrategyConfig();
- stConfig.setCapitalMode(true) //全局大写命名
- .setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
- .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
- //.setTablePrefix("tbl_")//表名前缀
- .setInclude(tableName); // 需要生成的表
- //4. 包名策略配置
- PackageConfig pkConfig = new PackageConfig();
- pkConfig.setParent("com.ljg")
- .setMapper("dao")//dao
- .setService("service")//servcie
- .setController("controller")//controller
- .setEntity("po")
- .setXml("mappper");//配置文件mapper/xml
- //5. 整合配置
- AutoGenerator ag = new AutoGenerator();
- ag.setGlobalConfig(config)
- .setDataSource(dsConfig)
- .setStrategy(stConfig)
- .setPackageInfo(pkConfig);
- //6. 执行
- ag.execute();
- }
- }
二、执行结果:
一键构成三层架构:controller层、service层,dao层,以及mybatis.xml文件。
mybatis_plus插件——生成器的更多相关文章
- Padrino 生成器指南
英文版出处:http://www.padrinorb.com/guides/generators Padrino提供了用于快速创建应用的生成器,其优势在于构建推荐的Padrino应用结构.自动生成罗列 ...
- jQuery实现搜索框插件+豆瓣音乐接口实现豆瓣搜索框
jQuery实现搜索框插件 豆瓣音乐接口实现豆瓣搜索框 豆瓣接口有时不稳定,网络请求会报400,不要惊慌.我主要是练习一下jQuery的JSONP和封装插件. <div class=" ...
- Vue 插件和Preset
插件和Preset 插件 Vue CLI 使用了一套基于插件的架构 Vue CLI 使用了一套基于插件的架构.如果你查阅一个新创建项目的 package.json,就会发现依赖都是以 @vue/cli ...
- 使用Theia——创建插件
上一篇:使用Theia——创建扩展包 创建Theia插件 下面我们来看看如何创建Theia插件.作为示例,我们将注册一个Hello World命令,该命令显示一个“Hello World”通知.本文将 ...
- FL Studio入门:如何使用Layer插件叠加音色
Layer控制器也是FL Studio中一个特别有用的插件,主要用来叠加音色,以及通过Layer通道来控制多个打击乐通道. 下面我们一起来看看叠加音色是怎么做出来的. 1.新建一个空白工程,插入3个3 ...
- Clappr——开源的Web视频播放器
巴西著名的门户网站Globo.com(视频播放器),使用的是基于OSMF的Flash组件.在最近几年的发展过程中,Globo为视频平台陆续添加了不少额外功能,例如: 字幕,广告,画中画播放等.然而,由 ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- vue cli 3
介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global 快 ...
- ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建
一. Elastic Stack Elastic Stack是ELK的官方称呼,网址:https://www.elastic.co/cn/products ,其作用是“构建在开源基础之上, Elast ...
随机推荐
- PythonDay05
第五章 今日内容 字典 字典 语法:{'key1':1,'key2':2} 注意:dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽hash表 不是连续的. 所以 ...
- TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)
配置 第一步:右击工程,选择Options 第二步:在General Options的Target选项卡里选择对应的器件Device,这里是MSP430G2231 第三步:在Debugger里选择FE ...
- 冬天苹果笔记macbookpro消除静电的方法
冬天mac除静电的方法 1.mac虽然声称不需要关机,但和apple技术人员沟通后,还是需要1周进行一次关机操作 2.知乎上的回答:https://www.zhihu.com/question/195 ...
- Ant Design Pro 脚手架+umiJS 实践总结
一.简介 1.Ant Design Pro Ant Design Pro是一款搭建中后台管理控制台的脚手架 ,基于React,dva.js,Ant Design (1)其中dva主要是控制数据流向,是 ...
- 从头开始制作OJ-在线IDE的搭建
大家好,我是Fred913. 之前,我看过各种OJ(OpenJudge) 但是,还是没有自己做的好. 所以,我就来写了这篇教程. 环境 这次,我打算使用这些:PHP 5.6 Nginx/Apache ...
- S3C2440 移植最新5.2linux内核
基于 移植uboot后. 1. 移植linux内核 1.1 下载源码 打开 https://www.kernel.org/ 直接肝最新的 5.2.8 下载完后,在ubuntu里解压备用. 1.2 搭建 ...
- java字符串详解
一.String 类的定义 public final class String implements java.io.Serializable, Comparable<String>, C ...
- 积性函数&线性筛&欧拉函数&莫比乌斯函数&因数个数&约数个数和
只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 ...
- Java笔记(持续更新中)
Java语言的特点: 面向对象(封装,继承,多态) 平台无关性(JVM运行.class文件) 语言(泛型,Lambda) 类库(集合,并发,网络,IO/NIO) JRE(Java运行环境,JVM,类 ...
- vue父子组件通信高级用法
vue项目的一大亮点就是组件化.使用组件可以极大地提高项目中代码的复用率,减少代码量.但是使用组件最大的难点就是父子组件之间的通信. 子通信父 父组件 <template> <div ...