第一章 初学Java 创建Spring boot+Mybatis-plus+mysql

  • 目录
    • 一、创建项目
    • 二、配置pom.xml
    • 三、配置application.yml
    • 四、增加Mybatis-plus的Generator自动生成功能
    • 五、创建用户数据库
    • 六、生成user相关类

目录

身为一个理工男,话不多说,直接开干。

一、创建项目

1、新建项目
1.1第一步新建项目

1.2第二步完善创建的项目

填写好之后直接下一步,到此第一步项目已经创建完成!

二、配置pom.xml

1.加入mybatis-plus、mysql、lombok、Swagger依赖。

  <!--Mybatis Plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><!--Mybatis Plus 代码生成器依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><!-- freemarker模板 --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version></dependency><!--Mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.17</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--Swagger-UI API文档生产工具--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

加入依赖之后,咱们把org.springframework.boot放到最后,不然运行的时候会报错。

三、配置application.yml

resources下新建文件application.yml

创建完成之后配置文件

代码块

    cache: false # 关闭缓存,默认开启   #    prefix: classpath:/pages/  #修改默认路径 classpath:/templates/   datasource:url: jdbc:mysql://localhost:3306/hamletdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTTusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver   mvc:pathmatch:matching-strategy: ant_path_matcher# mybatis-plus配置 mybatis-plus:   configuration:# 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射map-underscore-to-camel-case: true# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用log-impl: org.apache.ibatis.logging.stdout.StdOutImpl   #MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名   type-aliases-package:
com.example.hamlet.entity   #xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML
文件位置)   mapperLocations: classpath:mapper/*.xml ```

加入配置之后我们重新生成一下依赖

然后在启动文件中声明一下,项目已启动

点击三角按钮启动运行

现在项目已成功运行

四、增加Mybatis-plus的Generator自动生成功能

1、首先我们在com.example.hamlet下创建generator软件包,在软件包下面创建启动类MybatisPlusGenerator,如下图

代码块

package com.example.hamlet.generator;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.*;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.util.*;import java.util.function.BiConsumer; import java.util.function.Consumer;import java.util.function.Function;public class MybatisPlusGenerator {private static final String datasourceUrl="jdbc:mysql://localhost:3306/hamletdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT";private static final String datasourceUsername="root";private static final String datasourcePassword="Renshaobo0306";public static  void main(String[] args){// 项目路径String projectPath = System.getProperty("user.dir");// 代码生成器FastAutoGenerator.create(datasourceUrl, datasourceUsername, datasourcePassword)// 全局配置.globalConfig(initGlobalConfig(projectPath)).packageConfig(initPackageConfig(projectPath))//.templateConfig(builder -> {//禁止除entiy的模板,只更新实体类//    builder.disable(TemplateType.CONTROLLER,TemplateType.MAPPER,TemplateType.SERVICE,TemplateType.SERVICEIMPL,TemplateType.XML);}).strategyConfig(initStrategyConfig())// 使用Freemarker引擎模板,默认的是Velocity引擎模板.templateEngine(new FreemarkerTemplateEngine()).execute();}// 处理 all 情况protected static List<String> getTables(String tables) {return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));}/*** 初始化全局配置*/private static Consumer<GlobalConfig.Builder> initGlobalConfig(String projectPath) {return builder -> {// 作者builder.author("Hamlet")// 输出路径.outputDir(projectPath + "/src/main/java")// 禁止打开输出目录.disableOpenDir()// 开启swagger.enableSwagger()// 注释日期.commentDate("yyyy/MM/dd HH:mm")// 开启覆盖之前生成的文件.fileOverride();};}/*** 初始化包配置*/private static Consumer<PackageConfig.Builder> initPackageConfig(String projectPath) {return builder -> {builder.parent("com.example.hamlet") //生成文件的父包.entity("entity").service("service").serviceImpl("service.impl").controller("controller").mapper("mapper").xml("mapper").pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/mapper/"));};}/*** 初始化策略配置*/private static BiConsumer<Function<String, String>, StrategyConfig.Builder> initStrategyConfig() {return (scanner, builder) -> {builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all")))// 增加过滤表前缀//.addTablePrefix("t_")// service策略配置.serviceBuilder().formatServiceFileName("I%sService").formatServiceImplFileName("%sServiceImpl")// entity策略配置.entityBuilder()// 数据库表映射到实体的命名策略.naming(NamingStrategy.underline_to_camel)// 数据库表字段映射到实体的命名策略.columnNaming(NamingStrategy.no_change)// 开启lombok模型.enableLombok()// controller策略设置.controllerBuilder().formatFileName("%sController").enableRestStyle().enableHyphenStyle()// mapper策略设置.mapperBuilder()// 生成通用的resultMap.enableBaseResultMap().enableBaseColumnList().superClass(BaseMapper.class).formatMapperFileName("%sMapper").enableMapperAnnotation().formatXmlFileName("%sMapper");};}} ```

五、创建用户数据库

随意添加几条数据

六、生成user相关类

启动MybatisPlusGenerator的main函数输入user回车生成

回车之后会自动生成controller、entity、mapper、service、impl5个软件包和对应的类文件。

在entity下创建vo软件包,并添加UserVO类

package com.example.hamlet.entity.vo;import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.io.Serializable;
@Data
public class UserVO implements Serializable {private static final long serialVersionUID = 1L;@ApiModelProperty("主键ID")private Long id;@ApiModelProperty("姓名")private String name;@ApiModelProperty("年龄")private Integer age;@ApiModelProperty("邮箱")private String email;@ApiModelProperty("用户名")private String userAccount;@ApiModelProperty("密码")private String passWord;@ApiModelProperty("性别")private String sex;}

打开IUserService添加接口

/**  * <p>  *  服务类  * </p>  * * @author Hamlet * @since 2022/10/26 17:12  */ public interface IUserService extends IService<User> {List<UserVO> selectUserList();}

打开UserService实现selecctUserList方法

/*** <p>*  服务实现类* </p>** @author Hamlet* @since 2022/10/26 17:12*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {@Autowiredprivate UserMapper userMapper;@Overridepublic List<UserVO> selectUserList() {List<UserVO> userVOList=new ArrayList<>();List<User> userList=userMapper.selectList(null);if (CollectionUtils.isEmpty(userList))return userVOList;elseuserList.forEach(user -> {UserVO userVO=new UserVO();BeanUtils.copyProperties(user,userVO);userVOList.add(userVO);});return userVOList;}
}

打开User控制器

package com.example.hamlet.controller;import com.example.hamlet.entity.vo.UserVO;
import com.example.hamlet.service.IUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** <p>*  用户控制器* </p>** @author Hamlet* @since 2022/10/26 17:12*/
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate IUserService userService;/*** 获取用户列表* @return List<UserVO>*/@GetMapping("/list")@ApiOperation("获取用户列表")public List<UserVO> GetUserList(){return userService.selectUserList();}
}

至此所有的方法都已写完,运行项目
输入链接:http://localhost:8099/user/list

点点关注不迷路,下一章添加Swagger2

初学Java 从0-1创建Spring boot+Mybatis - plus+Swagger2+Mysql(代码生成器)相关推荐

  1. Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存

    背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybatis是一个十分轻量好用的ORM框架.Redis是当今十分主流的分布式key- ...

  2. Openshift:使用Java 8在Wildfly 8.2.0上构建Spring Boot应用程序

    OpenShift DIY墨盒是在OpenShift上测试不受支持的语言的好方法. 但是它不具有可伸缩性(您可以在此处为可伸缩DIY墨盒投票),这使得它很难与生产级Spring Boot应用程序一起使 ...

  3. Java工作笔记-使用Maven创建Spring Boot并生成war包外部tocamt运行

    目录 基本概念 代码与实例 基本概念 目前发现很多Java项目都是直接使用Maven作项目管理,在Maven中配置依赖,比如Spring boot完成操作,在经历了这么多操作后,还发现大家喜欢把Mav ...

  4. 创建Spring boot项目运行出现报错: java: 无效的源发行版: 14

    触发场景:创建Spring boot项目运行出现报错\ 首先在左边的项目中选择pom.xml文件 找到这行,把中间的版本改成自己下载的java版本 我的是1.8,改好后再点maven刷新即可

  5. 安卓后端mysql_后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)

    1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...

  6. java集合系列之18 spring boot程序员的必修课

    Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 ...

  7. maven web项目导入sts_Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式

    我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...

  8. 如何在STS中创建Spring Boot项目

    你好朋友, 在本教程中,我们将逐步介绍如何在STS(Spring工具套件)中创建Spring Boot项目. 步骤1: 如果您尚未从相应的操作系统的以下链接中下载Spring工具套件,请下载: htt ...

  9. 如何使用Spring初始化程序创建Spring Boot项目

    你好朋友, 如果您以前使用过Spring框架,则必须意识到,即使要开始使用基本的Spring功能也需要付出一些真正的努力.有了Spring Boot,最初的麻烦就消失了,您可以在数分钟内开始使用. 欢 ...

最新文章

  1. php在图片上绘制汉字之imageTtfText()函数
  2. SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换)
  3. python2和python3中encoding的差别
  4. 面试云计算岗位时这些面试题不能错过
  5. TCP三次握手四次挥手介绍
  6. angular2 --使用DecimalPipe格式化数字
  7. 2022 年不错的 SQL 注入 (SQLi) 检测工具
  8. 解析《富爸爸财务自由之路》
  9. php pos机刷卡,POS机刷卡的正确使用方法和注意事项
  10. chrome无法访问商店,打不开网页怎么办,五步轻松解决
  11. ...的Comparator和Compa
  12. [ JAVA ] 共有前缀
  13. 使用 Google Guava Striped 实现基于 Key 的并发锁
  14. 2021年度总结 -- 万粉博主的写作荣誉分享,写博客是一种心灵的修行
  15. Git常用命令、及常见报错处理:You have not concluded your merge (MERGE_HEAD exists)
  16. 如何用html制作田字格,WPS文字怎么制作田字格 WPS文字制作田字格的方法
  17. ng-include
  18. python加密安装方法_安装Python加密错误
  19. 手机搜狐概念版 html,搜狐领跑四大门户 首推H5技术手机概念版
  20. 智慧交管可视化决策系统

热门文章

  1. java秀恩爱代码_Android表白秀恩爱源码
  2. steam验证登录失败_如何向Steam添加两方面身份验证
  3. c++语言绝对值函数,由C++绝对值函数想到的 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  4. Android12(S)授权弹窗被悬浮窗遮挡导致无法点击问题分析
  5. 英语口语学习——洋话侃中国
  6. 雷达探测项目仿真代码(Matlab代码实现)
  7. 定制化电商方案+个性化营销 打造“无淡季”创新模式
  8. Java实现 LeetCode 564 寻找最近的回文数(今天要GG在这道题了 头晕+题难(((φ(◎ロ◎;)φ))))...
  9. 活动二维码怎么制作?如何将活动内容做成二维码图片?
  10. Kotlin全套视频教程分享