试着用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'
配置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
mysql 8.0以上的比较新的版本请把cj.去掉
运行一下有没有添加依赖成功
添加代码生成器依赖
需要说明一下: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'
模板配置文件
接下来我们来new 一个配置文件MyGenerator.java
// 代码生成器
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一下这个函数,输入表名)
成功了有木有!!!
然后添加一下扫描
@MapperScan(basePackages = "com.sydlc.mapper") //扫描Mapper接口(xxxDAO)
运行一下没有报错就ok
测试一下
数据库插入一条信息
控制器写上一段代码
运行一下,postmap访问
完成。