最近在学习mybatis框架,虽然已经简化了一些Dao代码,但是还想更上一层楼吗?不再被基本的pojo层,controller层,service层,dao层基本重复代码所困恼吗?这里,让我们来学习一下mybatis plus生成器吧,实现mybatis的逆向工程,最好是以springboot结合。

一、导入maven依赖,注意版本,以及编写生成器主类

  1. <!--springboot使用mybatis-plus,所需要的2个依赖jar包-->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus</artifactId>
  5. <version>2.1.9</version>
  6. </dependency>
  7. <dependency>
  8. <!--mybatis自动装配必须要-->
  9. <groupId>org.mybatis.spring.boot</groupId>
  10. <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
  11. <version>1.3.2</version>
  12. </dependency>
  1. package com.ljg.generator;
  2.  
  3. import com.baomidou.mybatisplus.enums.IdType;
  4. import com.baomidou.mybatisplus.generator.AutoGenerator;
  5. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  6. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  7. import com.baomidou.mybatisplus.generator.config.PackageConfig;
  8. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
  9. import com.baomidou.mybatisplus.generator.config.rules.DbType;
  10. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  11.  
  12. import java.sql.SQLException;
  13.  
  14. public class MyBatisPlusGenerator {
  15.  
  16. public static void main(String[] args) throws SQLException {
  17. String tableName="user";//表名,记得创建号数据库表哦
  18. AutoGenerator mpg = new AutoGenerator();
  19. // 选择 freemarker 引擎,默认 Veloctiy
  20. //1. 全局配置
  21. GlobalConfig config = new GlobalConfig();
  22. config.setActiveRecord(true) // 是否支持AR模式
  23. .setAuthor("Ljg") // 作者
  24. .setEnableCache(false)// XML 二级缓存
  25. .setOutputDir("D:\\IdeaProject\\mybatis_plus_demo\\src\\main\\java") // 生成路径
  26. .setFileOverride(true) // 文件覆盖
  27. .setIdType(IdType.AUTO) // 主键策略
  28. .setBaseResultMap(true)//生成基本的resultMap
  29. .setBaseColumnList(true)//生成基本的SQL片段
  30. /* 自定义文件命名,注意 %s 会自动填充表实体属性! */
  31. .setMapperName("I%sDao")
  32. .setXmlName("I%sDao")
  33. .setServiceName("I%sService")
  34. .setServiceImplName("%sServiceImpl")
  35. .setControllerName("%sController");
  36. mpg.setGlobalConfig(config);
  37.  
  38. //2. 数据源配置
  39. DataSourceConfig dsConfig = new DataSourceConfig();
  40. dsConfig.setDbType(DbType.MYSQL) // 设置数据库类型
  41. .setDriverName("com.mysql.jdbc.Driver")
  42. .setUrl("jdbc:mysql://172.1.10.24/zz?useUnicode=true&characterEncoding=utf-8")
  43. .setUsername("root")
  44. .setPassword("123456");
  45. mpg.setDataSource(dsConfig);
  46.  
  47. //3. 策略配置globalConfiguration中
  48. StrategyConfig stConfig = new StrategyConfig();
  49. stConfig.setCapitalMode(true) //全局大写命名
  50. .setDbColumnUnderline(true) // 指定表名 字段名是否使用下划线
  51. .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
  52. //.setTablePrefix("tbl_")//表名前缀
  53. .setInclude(tableName); // 需要生成的表
  54.  
  55. //4. 包名策略配置
  56. PackageConfig pkConfig = new PackageConfig();
  57. pkConfig.setParent("com.ljg")
  58. .setMapper("dao")//dao
  59. .setService("service")//servcie
  60. .setController("controller")//controller
  61. .setEntity("po")
  62. .setXml("mappper");//配置文件mapper/xml
  63.  
  64. //5. 整合配置
  65. AutoGenerator ag = new AutoGenerator();
  66. ag.setGlobalConfig(config)
  67. .setDataSource(dsConfig)
  68. .setStrategy(stConfig)
  69. .setPackageInfo(pkConfig);
  70.  
  71. //6. 执行
  72. ag.execute();
  73. }
  74. }

二、执行结果:

一键构成三层架构:controller层、service层,dao层,以及mybatis.xml文件。

mybatis_plus插件——生成器的更多相关文章

  1. Padrino 生成器指南

    英文版出处:http://www.padrinorb.com/guides/generators Padrino提供了用于快速创建应用的生成器,其优势在于构建推荐的Padrino应用结构.自动生成罗列 ...

  2. jQuery实现搜索框插件+豆瓣音乐接口实现豆瓣搜索框

    jQuery实现搜索框插件 豆瓣音乐接口实现豆瓣搜索框 豆瓣接口有时不稳定,网络请求会报400,不要惊慌.我主要是练习一下jQuery的JSONP和封装插件. <div class=" ...

  3. Vue 插件和Preset

    插件和Preset 插件 Vue CLI 使用了一套基于插件的架构 Vue CLI 使用了一套基于插件的架构.如果你查阅一个新创建项目的 package.json,就会发现依赖都是以 @vue/cli ...

  4. 使用Theia——创建插件

    上一篇:使用Theia——创建扩展包 创建Theia插件 下面我们来看看如何创建Theia插件.作为示例,我们将注册一个Hello World命令,该命令显示一个“Hello World”通知.本文将 ...

  5. FL Studio入门:如何使用Layer插件叠加音色

    Layer控制器也是FL Studio中一个特别有用的插件,主要用来叠加音色,以及通过Layer通道来控制多个打击乐通道. 下面我们一起来看看叠加音色是怎么做出来的. 1.新建一个空白工程,插入3个3 ...

  6. Clappr——开源的Web视频播放器

    巴西著名的门户网站Globo.com(视频播放器),使用的是基于OSMF的Flash组件.在最近几年的发展过程中,Globo为视频平台陆续添加了不少额外功能,例如: 字幕,广告,画中画播放等.然而,由 ...

  7. OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  8. vue cli 3

    介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global 快 ...

  9. ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建

    一. Elastic Stack Elastic Stack是ELK的官方称呼,网址:https://www.elastic.co/cn/products ,其作用是“构建在开源基础之上, Elast ...

随机推荐

  1. 第十五章 LVM管理和ssm存储管理器使用 随堂笔记

    第十五章 LVM管理和ssm存储管理器使用 本节所讲内容: 15.1 LVM的工作原理 15.2 创建LVM的基本步骤 15.3 实战-使用SSM工具为公司的邮件服务器创建可动态扩容的存储池 LVM的 ...

  2. 初识JavaScript和面向对象

    1.javascript基本数据类型: number: 数值类型 string: 字符串类型 boolean: 布尔类型 null: 空类型 undefault:未定义类型 object: 基本数据类 ...

  3. 编程杂谈——Non-breaking space

    近日,意外地遇上件不寻常的事情.在解析PDF文件,读取其中内容的时候,对某一文件的处理,始终无法达到预期的效果. 解析方法如下: public void Parse(string value) { i ...

  4. 洛谷 P4127 [AHOI2009]同类分布

    题意简述 求l~r之间各位数字之和能整除原数的数的个数. 题解思路 数位DP 代码 #include <cstdio> #include <cstring> typedef l ...

  5. macOS 下的 MySQL 8.0.17 安装与简易配置

    如果我写的这篇你看不懂,可能网上也没有你能看懂的教程了 虽然这篇针对的是8.0.x版本,但是关于MySQL配置之类的方法还是通用的 环境信息与适用范围 环境信息 环境/软件 版本 macOS macO ...

  6. 8.12 day31 进程间通信 Queue队列使用 生产者消费者模型 线程理论 创建及对象属性方法 线程互斥锁 守护线程

    进程补充 进程通信 要想实现进程间通信,可以用管道或者队列 队列比管道更好用(队列自带管道和锁) 管道和队列的共同特点:数据只有一份,取完就没了 无法重复获取用一份数据 队列特点:先进先出 堆栈特点: ...

  7. 前端面试题集锦(二)之CSS部分

    1.CSS中的选择器都有哪些?权限情况如何? 解答: (1)类选择器 .className  (2) ID选择器 #id  (3) 元素选择器 div 可以多个,以逗号隔开 (4)父子选择器 以空格隔 ...

  8. python面向对象初始进阶版 通过一道题带你认识面向对象

    定义一个类 class Person: #公共属性 animal='高级动物' soul='有灵魂' language='语言' def init(self,country,name,sex,age, ...

  9. 拼写单词[哈希表]----leetcode周赛150_1001

    题目描述: 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我 ...

  10. 《白帽子讲web安全》——吴瀚清 阅读笔记

    浏览器安全 同源策略:浏览器的同源策略限制了不同来源的“document”或脚本,对当前的“document”读取或设置某些属性.是浏览器安全的基础,即限制不同域的网址脚本交互     <scr ...