【Java】SpringBoot 单体项目创建 与 整合 Mybatis-Plus

文章目录

  • 前言
  • 1. 创建项目与整合MP
    • 1.1 IDEA创建SpringBoot项目
    • 1.2 SpringBoot整合Mybatis-Plus
  • 2. 远程仓库
    • 2.1 创建远程仓库/本地仓库
    • 2.2 Add/Commit/Push/Pull
  • 3. 总结与补充
    • 3.1 解决refusing to merge unrelated histories
    • 3.2 总结
    • 3.3 结语
  • 参考资料

SpringBoot 单体项目创建 与 整合 Mybatis-Plus

记一次项目初始化,并整合Mybatis-Plus

前言

炎炎夏日,闲来无事,开了一个项目练手。在完成了需求分析、表设计之后,就要开始项目搭建了。

在搭建之前先考虑:

  • 预估当前项目用户体量不大,单体项目即可
  • 当前项目为工具类项目,选用Java技术栈
  • 时间也要抓紧,为避免一些踩坑及调试,先采用JDK1.8,后续再考虑向JDK17等新LTS过渡
  • 练手为主,就暂时不用现成的开源项目二开,直接从创建一个 SpringBoot 项目开始

基于以上,先创建一个SpringBoot,然后整合Mybatis-Plus,创建一个远程仓库并push

学习目标

  • 本地创建SpringBoot项目,并用Maven管理依赖
  • 整合Mybatis,Mybatis-Plus
  • 创建一个远程仓库,并将上述创建好的项目push

当然,由于本地创建SpringBoot的项目一般大部分读者都比较熟,因此这部分读者可以直接跳过创建项目的部分而直接参考SpringBoot整合Mybatis/Mybatis-plus,希望能为诸位提供一点参考价值。

下面我们开始!

1. 创建项目与整合MP

我们在公司以及日常自己做其它中大型项目、时间紧的项目的时候,常用开源或者其它现成的项目二开来提升效率,这种项目一般都是拉下来,配置本地环境,修改,配置远程仓库,push即可。本地创建SpringBoot项目的方式工作后就比较少用了,借此一起回顾一下:

一般有两种方式:

  • SpringBoot官网直接下载项目的zip包,然后本地解压,再在IDE打开
  • 在IDE创建SpringBoot

其实,在IDE创建SpringBoot的本质也是在官网下载zip包,只不过一般我们常用的IDE都做得比较好,将中间很多步骤都省略了,且提供了一个简洁高效的选择界面给我们选择,并可在创建项目时做一些pom.xml的依赖引入以及其它配置等。

这里我就以IDEA的项目创建为例。

1.1 IDEA创建SpringBoot项目

结合我个人创建过程中的截图,记录如下步骤:
选择IDEA创建项目入口
01

选择Spring Initializr
注意,这一步要填的信息比较多,包括命名包名,选择JDK、组名、依赖/打包工具等,读者需要根据自己的实际所需工具来;其中,这里我个人需要选择创建基于JDK8的springboot,因此还是选择阿里云的Server URL:
02

选择SpringBoot版本并勾选依赖
其实这一步的本质和我们配置pom.xml并无区别,因此我们可以只先勾选例如如下Spring web的部分方便我们初次启动验证项目。其余的工具与中间件的依赖与配置,我们后续再逐个手动加上并配置即可。
03

本地Maven选择
若读者和我一样是使用Maven作为项目的依赖打包工具,则参考如下截图修改,使用本地自己的Maven。若不使用本地自己的Maven,若是Windows用户,IDEA会默认将各种依赖下载到我们的系统C盘,影响系统盘空间:

  • File 中找到 Settings:
    04

  • 参考此图修改使用的Maven配置及本地仓库路径:
    05

启动项目验证
上述均配置好后,我们可以直接启动这个刚建的项目来验证一下。出现类似如下截图的说明我们的项目创建成功:
06

1.2 SpringBoot整合Mybatis-Plus

pom.xml
首先,我们需要引入MP相关dependency到pom.xml,其中,version版本的选择读者需要根据自己的实际情况选择,例如对应springboot兼容的版本。

<!--    MybatisPlus    -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency><!--   Mysql     -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>
</dependency><!--    Lombok    -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

这里我自己顺便引入了Lombok

application.yml
接着,我们配置application.yml,参考如下:

#数据源
spring:datasource:url: jdbc:mysql://localhost:3306/mybatis_plus_learning?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaiusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver#配置日志
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

至于mybatis-plus的更多配置,请读者参考:mybatis官网

最后,我们重启下项目验证一下基本配置,若正常启动则说明基本没什么问题或问题不大。如果此时表已经设计好,可以写个Demo测试一下MP是否能正常使用。若配合IDEA插件Mybatis-X来生成基础代码的话,不要忘记@MapperScan哦~

2. 远程仓库

项目创建好后,我们就可以将基础项目推到远程仓库了。这里以 Gitee 为示例。

2.1 创建远程仓库/本地仓库

创建远程仓库
如下截图,我们登录到Gitee后,可在平台创建仓库,如下填入仓库名、分支结构等基础信息即可:
07

创建本地仓库
如下图所示,我们可以在本地终端/cmd使用git init命令创建本地仓库。当然这一步的前提是在创建项目时没有在勾选IDEA帮我们创建的本地仓库:
08

2.2 Add/Commit/Push/Pull

一般接下来的步步骤就是进行实际开发后的分支管理了。

我个人常用命令来进行git操作,日常主要使用git addgit commitgit pushgit pull了。

当然偶尔也用一下IDEA自带的push、pull、checkout branch等。
此处趁着是新项目,以下是完成远程和本地仓库创建后,我们点击IDEA的git push:
09

接下来,就可以正常推拉了。当然,还有个小前提就是本地git本身也要配好;若是SSH的方式,SSH Key等要配好。

关于git具体的操作,篇幅有限,此处不赘述,有需要的读者需到git官方文档及其它参考文章了解。

3. 总结与补充

3.1 解决refusing to merge unrelated histories

一般如果我们对远程仓库做了初始化,直接commit push的话,会报:

fatal: refusing to merge unrelated histories

解决方案:

git pull origin main --allow-unrelated-histories 

之后,再进行一次 add,commit,push

参考:Git与GitHub:仓库初始化初级流程

3.2 总结

本文记录了一次我做新项目的时候基础项目、Mybatis-Plus的基本配置过程,以及将这个基础项目推到一个新的远程仓库。

其实这部分的内容简单,大家都挺熟,学习开发的时候各种教程都教过,工作时多少也会接触。只是,随着效率的提升,二开的场景会更多,多数框架和开源项目开箱即用,这种本地创建基础项目可能会随着时间慢慢忘却。记录一次,日后方便翻阅,也希望帮助到读者。

3.3 结语

码路漫漫,我们都在不断学习、重复、思考、前进。如果您觉得这篇文章对您多少有点帮助,不妨点个免费的赞,您的支持是我更新的一大动力。期待在下一篇文章再相会!

参考资料

  • Git与GitHub:仓库初始化初级流程
  • CSDN-Mybatis-plus入门
  • mybatis官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/414568.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop环境搭建

一、Linux环境准备 Linux命令查询https://www.linuxcool.com/ http://linux.51yip.com/ 安装Linux虚拟机 安装 sudo apt install open-vm-tools 安装 sudo apt install open-vm-tools-desktop &#xff08;可选&#xff09;换国内源 ​​ sudo apt update 更新软件列表&…

火焰传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main.c文件 IR.h文件 IR.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 火焰传感器是一种常用于检测火焰或特定波长&#xff08;760nm-1100nm&#xff09;红外光的传感器。探测角度60左右&am…

Docker占用根目录/存储空间过多如何清理?

问题背景 使用df -h查看磁盘空间时发现根目录空间不多了&#xff0c;已使用96%&#xff0c;红色警告&#xff01;&#xff01;&#xff01; 于是使用df -h /* 一层一层定位&#xff0c;终于找到了一个大文件 9G多的文件夹&#xff0c;位置是&#xff1a; /var/lib/docker/o…

无线通信-WIFI通信

文章目录 1. 基础知识2. 工作模式3. AT指令4. 常用AT指令实例5. 连接原子云6. 使用usb转ttl模块测试ATK-MW8266D7. 使用STM32F103ZET6战舰开发板透传模式8. 使用STM32F103ZET6战舰板连接原子云 1. 基础知识 ATK-ESP-01 ATK-ESP-01模块支持标准的IEEE802.11b/g/n协议&#xff0c…

【Linux】文件魔法师:时间与日历的解密

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;文件魔法师&#xff1a;时间与日历的解密 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码…

【uniapp重大bug】uni-data-select的localdata改变,也会触发@change方法

bug描述 uni-data-select的下拉列表值localdata是动态获取的&#xff0c;且绑定了change方法&#xff0c;在页面加载后&#xff0c;请求localdata的列表数据&#xff0c;给localdata重新赋值&#xff0c;此时发现自动触发了change方法 当前uni版本&#xff1a;^2.0.2-30709202…

Axure RP10安装教程(Pro版)

下载链接 https://ga90eobypbb.feishu.cn/docx/UyzSd4q8SoXySjxtrcac4QnVn3f Axure RP 是一款专业的快速原型设计工具。它能帮助用户高效地创建网页和移动应用的线框图、流程图、原型和规格说明文档。拥有丰富的交互组件&#xff0c;可模拟各种复杂交互效果&#xff0c;如点击…

【千帆AppBuilder】使用Python调用基于官方的API创建图片故事的应用,一起体验下全代码模式下是怎样的效果

欢迎来到《小5讲堂》 这是《千帆》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景基本信息名称简介角色指令 能力扩展组件对话开场白推荐问 模型选…

98.SAP MII功能详解(12)Workbench-Transaction Logic(For Next Loop)

目录 1.Logic->For Next Loop 2.演示 配置对象 配置连接 for循环的整体演示 1.Logic->For Next Loop 此操作用于在预定义的次数内执行任务。每次迭代都会执行直接跟随For Next循环操作的所有操作&#xff0c;直到达到To限制。 若要在达到To属性限制之前停止&…

旅行追踪和行程规划工具AdventureLog

什么是 AdventureLog &#xff1f; AdventureLog 是一种记录您的旅行并与世界分享的简单方法。您可以在日志中添加照片、笔记等。跟踪您访问过的国家、探索去过的地区和地方。您还可以查看您的旅行统计数据和里程碑。AdventureLog 旨在成为您终极的旅行伴侣&#xff0c;帮助您记…

【LLM】文生视频相关开源数据集(VidGen、Panda、Cogvideox等)

note 总结了VidGen数据集、Panda-70m数据集、Openvid数据集、OpenVid-1M数据集、Cogvideox训练数据准备过程、ShareGPT4Video数据集等在一篇综述中还总结了评估指标包括&#xff1a;峰值信噪比&#xff08;PSNR&#xff09;、结构相似性指数&#xff08;SSIM&#xff09;、Inc…

matlab 将数组从左向右翻转

目录 一、概述1、算法概述2、主要函数二、代码示例1、翻转行向量2、翻转字符元胞数组3、翻转多维数组三、参考链接本文由CSDN点云侠翻译,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的抄袭狗。 一、概述 1、算法概述 将数组从左向右翻转 2、主要…

C++实现彩虹猫时空隧道特效(无害)

#include <Windows.h> // 如果不是在Visual Studio环境下运行的话W最好改小写。 using namespace std;int main() {for (int i 1; i < 10; i) {HDC hdc GetWindowDC(GetDesktopWindow());RECT rect;GetWindowRect(GetDesktopWindow(), &rect);StretchBlt(hdc, r…

[工具使用]ellisys

工具打开&#xff1a; 1.连接ellisys电源&#xff0c;ellisys Computer接口USB连接电脑&#xff0c;Logic接口与板子出信号的GPIO口连接 工具配置 1.点击"Configure" 2.在打开的Recording options中选择Wireless选项卡 2.选择Wired选项卡​ i.勾选Logic transit…

中秋佳节,悦动之选,精选热门骨传导耳机深度推荐

在这个金秋送爽、月圆人团圆的中秋佳节&#xff0c;我们不仅仅沉浸在月饼的香甜与家人的温馨之中&#xff0c;更渴望一份能够连接心与自然的独特礼物&#xff0c;让这份团聚的时光更加丰富多彩。在这个充满诗意的季节里&#xff0c;我满怀欣喜地向您推荐一款集科技、健康与时尚…

Maven的相关配置和使用

Maven的配置&#xff1a; Maven的配置和Java差不多&#xff0c;从镜像站下载相关的Maven版本压缩包&#xff0c;然后解压到自己的D盘&#xff0c;在进行系统变量的配置&#xff0c;新建变量Maven_HOME&#xff0c;然后值设置为Maven的地址&#xff0c;一定是点开文件后就能出现…

页面间对象传递的几种方法

页面间对象传递的几种方法 1. 使用request对象传递2. 使用session对象传递3. 使用application对象传递4. 使用cookie传递 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Web开发中&#xff0c;页面间的数据传递是一个常见的需求。本文将…

java 实现文本转音频

文章目录 一、前言二、实现流程2.1 下载jacob-1.18.zip2.2 拷贝jacob-1.18-x64.dll2.3 pom 添加依赖2.4 代码实现 一、前言 本文基于Windows自带的SAPI.SpVoice&#xff0c;通过java代码实现文本转语音的功能。 二、实现流程 2.1 下载jacob-1.18.zip 链接&#xff1a;https…

号称史上最强AI的Google Gemini,通过大语言模型的帮助如何实现智能交互?

导读&#xff1a; 本文旨在探索一条创新的路径&#xff0c;即通过利用Google的Gemini Flash而非广为人知的LangChain&#xff0c;来实现与CSV文件的智能交互。本文将构建一个简单的CSV解释器&#xff0c;利用大型语言模型&#xff08;LLM&#xff09;来生成代码并解析数据&…

2024年互联网公司时薪排行榜大曝光!看完我酸了,第一竟是他…

大家好呀&#xff0c;我是胡广&#xff0c;今天看到千峰教育公众号分享一个对于选择公司非常有用的参考&#xff1a;“互联网时薪”。特地分享给各位看看 很多小伙伴在选择一家公司的时候更关注总收入package (除了基本的月薪&#xff0c;加上其他的所有的收入&#xff0c;包括…