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 ...
随机推荐
- 第十五章 LVM管理和ssm存储管理器使用 随堂笔记
第十五章 LVM管理和ssm存储管理器使用 本节所讲内容: 15.1 LVM的工作原理 15.2 创建LVM的基本步骤 15.3 实战-使用SSM工具为公司的邮件服务器创建可动态扩容的存储池 LVM的 ...
- 初识JavaScript和面向对象
1.javascript基本数据类型: number: 数值类型 string: 字符串类型 boolean: 布尔类型 null: 空类型 undefault:未定义类型 object: 基本数据类 ...
- 编程杂谈——Non-breaking space
近日,意外地遇上件不寻常的事情.在解析PDF文件,读取其中内容的时候,对某一文件的处理,始终无法达到预期的效果. 解析方法如下: public void Parse(string value) { i ...
- 洛谷 P4127 [AHOI2009]同类分布
题意简述 求l~r之间各位数字之和能整除原数的数的个数. 题解思路 数位DP 代码 #include <cstdio> #include <cstring> typedef l ...
- macOS 下的 MySQL 8.0.17 安装与简易配置
如果我写的这篇你看不懂,可能网上也没有你能看懂的教程了 虽然这篇针对的是8.0.x版本,但是关于MySQL配置之类的方法还是通用的 环境信息与适用范围 环境信息 环境/软件 版本 macOS macO ...
- 8.12 day31 进程间通信 Queue队列使用 生产者消费者模型 线程理论 创建及对象属性方法 线程互斥锁 守护线程
进程补充 进程通信 要想实现进程间通信,可以用管道或者队列 队列比管道更好用(队列自带管道和锁) 管道和队列的共同特点:数据只有一份,取完就没了 无法重复获取用一份数据 队列特点:先进先出 堆栈特点: ...
- 前端面试题集锦(二)之CSS部分
1.CSS中的选择器都有哪些?权限情况如何? 解答: (1)类选择器 .className (2) ID选择器 #id (3) 元素选择器 div 可以多个,以逗号隔开 (4)父子选择器 以空格隔 ...
- python面向对象初始进阶版 通过一道题带你认识面向对象
定义一个类 class Person: #公共属性 animal='高级动物' soul='有灵魂' language='语言' def init(self,country,name,sex,age, ...
- 拼写单词[哈希表]----leetcode周赛150_1001
题目描述: 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我 ...
- 《白帽子讲web安全》——吴瀚清 阅读笔记
浏览器安全 同源策略:浏览器的同源策略限制了不同来源的“document”或脚本,对当前的“document”读取或设置某些属性.是浏览器安全的基础,即限制不同域的网址脚本交互 <scr ...