最近在学习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. PythonDay05

    第五章 今日内容 字典 字典 语法:{'key1':1,'key2':2} 注意:dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽hash表 不是连续的. 所以 ...

  2. TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)

    配置 第一步:右击工程,选择Options 第二步:在General Options的Target选项卡里选择对应的器件Device,这里是MSP430G2231 第三步:在Debugger里选择FE ...

  3. 冬天苹果笔记macbookpro消除静电的方法

    冬天mac除静电的方法 1.mac虽然声称不需要关机,但和apple技术人员沟通后,还是需要1周进行一次关机操作 2.知乎上的回答:https://www.zhihu.com/question/195 ...

  4. Ant Design Pro 脚手架+umiJS 实践总结

    一.简介 1.Ant Design Pro Ant Design Pro是一款搭建中后台管理控制台的脚手架 ,基于React,dva.js,Ant Design (1)其中dva主要是控制数据流向,是 ...

  5. 从头开始制作OJ-在线IDE的搭建

    大家好,我是Fred913. 之前,我看过各种OJ(OpenJudge) 但是,还是没有自己做的好. 所以,我就来写了这篇教程. 环境 这次,我打算使用这些:PHP 5.6 Nginx/Apache ...

  6. S3C2440 移植最新5.2linux内核

    基于 移植uboot后. 1. 移植linux内核 1.1 下载源码 打开 https://www.kernel.org/ 直接肝最新的 5.2.8 下载完后,在ubuntu里解压备用. 1.2 搭建 ...

  7. java字符串详解

    一.String 类的定义 public final class String implements java.io.Serializable, Comparable<String>, C ...

  8. 积性函数&线性筛&欧拉函数&莫比乌斯函数&因数个数&约数个数和

    只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 ...

  9. Java笔记(持续更新中)

    Java语言的特点: 面向对象(封装,继承,多态) 平台无关性(JVM运行.class文件) 语言(泛型,Lambda) 类库(集合,并发,网络,IO/NIO) JRE(Java运行环境,JVM,类 ...

  10. vue父子组件通信高级用法

    vue项目的一大亮点就是组件化.使用组件可以极大地提高项目中代码的复用率,减少代码量.但是使用组件最大的难点就是父子组件之间的通信. 子通信父 父组件 <template> <div ...