试着用springboot搭建一个博客(2)

  • 总目录
  • 前言
  • MyBatis-Plus
  • 添加依赖
  • 配置application
  • 运行一下有没有添加依赖成功
  • 添加代码生成器依赖
  • 添加 模板引擎 依赖
  • 模板配置文件
  • 运行生成
  • 测试一下

总目录

试着用springboot搭建一个博客(1)—— 介绍与新建项目 试着用springboot搭建一个博客(2)—— 添加MyBatis-Plus依赖与代码生成器

前言

既然上次已经新建好了一个springboot项目了,接下来就需要配置下相关依赖了,看向第三点:mybatis-plus???对于经常写这种项目的人来说应该是非常熟悉的,对于我这种门外汉来说,知道mybatis就不错了。下面就来百度一下,然后通俗易懂的大概解释下,并且集成到我们的项目中。

MyBatis-Plus

先来百度下Mybatis:

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

接着来百度下MyBatis-Plus:

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

那么现在你是否已经明白了呢?简单来说MyBatis-Plus就是MyBatis的增强版。
好吧我坦言一时间我也只是得到了一个模糊的概念。第一MyBatis都用不好了解不透彻与深入,第二增强工具,增强了那些功能呢?增强到了什么程度?
(其实我决定用它的第一原因是因为我那写springboot的同学在看到我添加依赖时用的是MyBatis就说了一句,我看你写这个是真的麻烦,直接用MyBatis-Plus啊,可以自动生成代码。嗯。。。(在我还在想这怎么表示我是一个小白时,嗯???自动生成代码???我香了!!!)兄弟啊,来见证友谊的时候到了,帮我生成代码吧,实在不行你帮我写了吧。)

添加依赖

打开之前我们新建的项目。然后按照1234操作就行。

/* mybatis-plus 启动依赖 */
compile group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: '3.4.1'

springboot 生成License_代码生成器

配置application

这里先说一下,如果工程中同时存在application.properties文件和 application.yml文件,yml文件会先加载,而后加载的properties文件会覆盖yml文件。所以建议工程中,只使用其中一种类型的文件即可。至于你用的是application.properties还是application.yml看个人习惯而来,对于我这个小白来说application.yml比较直接好理解我用的就是application.yml。

server:
  port: 8088

spring:
  datasource:
    name: test
    url: jdbc:mysql://localhost:3306/******?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
    username: ******
    password: ******
    driver-class-name: com.mysql.cj.jdbc.Driver

springboot 生成License_代码生成器_02


mysql 8.0以上的比较新的版本请把cj.去掉

运行一下有没有添加依赖成功

springboot 生成License_spring boot_03

添加代码生成器依赖

需要说明一下:MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:

/* 代码生成器依赖 */
compile group: 'com.baomidou', name: 'mybatis-plus-generator', version: '3.4.1'

添加 模板引擎 依赖

MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,可以选择自己熟悉的模板引擎也可以采用自定义模板引擎。视情况习惯添加,这里我用的Velocity(springboot默认)做个事例

/* Velocity(默认) 引擎依赖 */
compile group: 'org.apache.velocity', name: 'velocity-engine-core', version: '2.2'

springboot 生成License_ci_04

模板配置文件

接下来我们来new 一个配置文件MyGenerator.java

springboot 生成License_代码生成器_05

// 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 1. 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setAuthor("****");//作者
        String projectPath = "D:\\****\\****\\****"; //项目Project地址
        gc.setOutputDir(projectPath + "/src/main/java");  //输出地址
        gc.setOpen(false);
        gc.setFileOverride(true);  // 是否覆盖同名文件,默认是false
        // gc.setSwagger2(true); 实体属性 Swagger2 注解 因为我们还没集成Swagger2所以先注释
        gc.setIdType(IdType.AUTO);  // 主键策略 具体可以进IdType看看
        /* 自定义文件命名, %s 会自动填充表实体属性! 默认生成的 会有 I 前缀*/
        gc.setMapperName("%sDao");
        gc.setXmlName("%sMapper");
        gc.setServiceName("%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setControllerName("%sController");

        mpg.setGlobalConfig(gc);

        // 2. 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/****?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("****");
        dsc.setPassword("******");

        mpg.setDataSource(dsc);

        // 3. 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.******");
        // 配置 entity 包名
        pc.setEntity("entity");
        // 配置 mapper 包名
        pc.setMapper("mapper");
        // 配置 service 包名
        pc.setService("service");
        // 配置 controller 包名
        pc.setController("controller");

        mpg.setPackageInfo(pc);

        // 4. 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);  //表名生成策略 (驼峰)
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        //strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
        strategy.setEntityLombokModel(true);    //以lombok注解生成实体类
        strategy.setRestControllerStyle(true);  //controller以RestFlue风格
        // 公共父类
        //strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
        // 写于父类中的公共字段
        strategy.setSuperEntityColumns("user_id");
        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
        // strategy.setInclude(new String[] { "sys_test" }); // 需要生成的表
        // strategy.setExclude(new String[]{"test"}); // 排除生成的表
        // 字段名生成策略
        strategy.setControllerMappingHyphenStyle(true);
        strategy.setTablePrefix("lc_blog_"); //表名前缀

        mpg.setStrategy(strategy);
        mpg.execute();

更多配置.

运行生成

配置完成之后,run一下这个函数,输入表名)

springboot 生成License_代码生成器_06


springboot 生成License_ci_07


成功了有木有!!!

springboot 生成License_spring boot_08

然后添加一下扫描

springboot 生成License_代码生成器_09

@MapperScan(basePackages = "com.sydlc.mapper") //扫描Mapper接口(xxxDAO)

运行一下没有报错就ok

springboot 生成License_代码生成器_10

测试一下

数据库插入一条信息

springboot 生成License_spring boot_11


控制器写上一段代码

springboot 生成License_spring_12


运行一下,postmap访问

springboot 生成License_代码生成器_13


完成。