初学Java 从0-1创建Spring boot+Mybatis - plus+Swagger2+Mysql(代码生成器)
第一章 初学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(代码生成器)相关推荐
- Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存
背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybatis是一个十分轻量好用的ORM框架.Redis是当今十分主流的分布式key- ...
- Openshift:使用Java 8在Wildfly 8.2.0上构建Spring Boot应用程序
OpenShift DIY墨盒是在OpenShift上测试不受支持的语言的好方法. 但是它不具有可伸缩性(您可以在此处为可伸缩DIY墨盒投票),这使得它很难与生产级Spring Boot应用程序一起使 ...
- Java工作笔记-使用Maven创建Spring Boot并生成war包外部tocamt运行
目录 基本概念 代码与实例 基本概念 目前发现很多Java项目都是直接使用Maven作项目管理,在Maven中配置依赖,比如Spring boot完成操作,在经历了这么多操作后,还发现大家喜欢把Mav ...
- 创建Spring boot项目运行出现报错: java: 无效的源发行版: 14
触发场景:创建Spring boot项目运行出现报错\ 首先在左边的项目中选择pom.xml文件 找到这行,把中间的版本改成自己下载的java版本 我的是1.8,改好后再点maven刷新即可
- 安卓后端mysql_后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)
1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...
- java集合系列之18 spring boot程序员的必修课
Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 ...
- maven web项目导入sts_Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...
- 如何在STS中创建Spring Boot项目
你好朋友, 在本教程中,我们将逐步介绍如何在STS(Spring工具套件)中创建Spring Boot项目. 步骤1: 如果您尚未从相应的操作系统的以下链接中下载Spring工具套件,请下载: htt ...
- 如何使用Spring初始化程序创建Spring Boot项目
你好朋友, 如果您以前使用过Spring框架,则必须意识到,即使要开始使用基本的Spring功能也需要付出一些真正的努力.有了Spring Boot,最初的麻烦就消失了,您可以在数分钟内开始使用. 欢 ...
最新文章
- php在图片上绘制汉字之imageTtfText()函数
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换)
- python2和python3中encoding的差别
- 面试云计算岗位时这些面试题不能错过
- TCP三次握手四次挥手介绍
- angular2 --使用DecimalPipe格式化数字
- 2022 年不错的 SQL 注入 (SQLi) 检测工具
- 解析《富爸爸财务自由之路》
- php pos机刷卡,POS机刷卡的正确使用方法和注意事项
- chrome无法访问商店,打不开网页怎么办,五步轻松解决
- ...的Comparator和Compa
- [ JAVA ] 共有前缀
- 使用 Google Guava Striped 实现基于 Key 的并发锁
- 2021年度总结 -- 万粉博主的写作荣誉分享,写博客是一种心灵的修行
- Git常用命令、及常见报错处理:You have not concluded your merge (MERGE_HEAD exists)
- 如何用html制作田字格,WPS文字怎么制作田字格 WPS文字制作田字格的方法
- ng-include
- python加密安装方法_安装Python加密错误
- 手机搜狐概念版 html,搜狐领跑四大门户 首推H5技术手机概念版
- 智慧交管可视化决策系统
热门文章
- java秀恩爱代码_Android表白秀恩爱源码
- steam验证登录失败_如何向Steam添加两方面身份验证
- c++语言绝对值函数,由C++绝对值函数想到的 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- Android12(S)授权弹窗被悬浮窗遮挡导致无法点击问题分析
- 英语口语学习——洋话侃中国
- 雷达探测项目仿真代码(Matlab代码实现)
- 定制化电商方案+个性化营销 打造“无淡季”创新模式
- Java实现 LeetCode 564 寻找最近的回文数(今天要GG在这道题了 头晕+题难(((φ(◎ロ◎;)φ))))...
- 活动二维码怎么制作?如何将活动内容做成二维码图片?
- Kotlin全套视频教程分享