博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)

DBC 53.3K 6
 

温馨提示

这篇文章目的在于让小伙伴们迅速搭建起项目,通过最简单的增删改查例子,直接完成学校的需求。目的就一个快字!!! [aru_50] 小伙伴们通过这个例子,能够直接自己实现一个完整的项目 [aru_120])。
通过这篇文章,我们将懂得以下知识点

  • 一、Java Meven项目如何从0到1的快速搭建,如何在保证不报错的情况下,符合行业标准规范?
  • 二、企业中所常用的Mybatic-Plus(Mybatic升级版)、Lombok、响应工具类是什么?
  • 三、企业中需要保证开发效率,如何快速生成代码?
  • 四、一个企业完整的项目结构是什么样子的?每一个类的作用是什么?
  • 五、后端常说的“接口”是什么?“接口”有什么用?后端的意义是什么?
  • ... 、等你来发现! [aru_53]

学习须知

  • 默认小伙伴已经安装了IntelliJ IDEA,没安装的也没关系,点击下面传送门也可以安装。

精品软件集合

3年前 (2021-07-15) 0
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图

扫盲内容

如果想学习java相关的可以打开来看一下,如果只是想快速应付一下作业就不用打开了,避免浪费你的时间,哈哈! [aru_36]

点击查看完整内容

从零搭建视频一览

此部分已被隐藏

发表评论刷新页面后方可查看

一、快速创建meven项目

Spring在线创建网站——快速创建

3年前 (2021-06-16) 0
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图2

通过上面的方式生成了项目之后,我们新建一个JsonData.java,将下面的代码复制进去。

直接传送门

统一接口响应协议JsonData-响应工具类封装

3年前 (2021-11-23) 0
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图4

二、在写之前,我们先要有Mybatic-Plus,具体是什么,传送门如下

增强版ORM框架-Mybatis plus

3年前 (2021-04-25) 1
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图6

小提示

这里是方便小白不知道pom文件是什么,以及不知道meven包在哪里添加,如果你知道了,就不用展开了

点击查看完整内容

三、项目完全成功后的结构图——目的是让读者知道对应的java类应该在什么地方合适!

其中箭头指的java类,你现在应该一个都没有,继续往下看就好啦![aru_50]

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图10

四、我们看一下我们简单的数据库,很简单,就一个id,一个name没有了

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图12
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图14

温馨提示

建数据库应该很简单吧,这应该不用说了吧,先建数据库(st-test)——然后建表(tb_user)——最后加两个字段(id、name)就可以了。
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图16

MyBatisPlusGenerator

点击查看完整内容
MyBatisPlusGenerator

这个就是生成各种类的工具类了,我们只用修改我画//TODO TODO TODO TODO的地方就可以了,然后在main方法上面右键运行就可以直接生成了。不要觉得很傻哈,这就是正规流程,以后深入了可以学习集成meven的方式。

温馨提示

根据上面的Mybatic-Plus,我们会生成如下文件:TbUserController.java、TbUserMapper.java、TbUserMapper.xml、TbUserDO.java、TbUserService.java、TbUserServiceImpl.java六个文件,文件具体放在哪里,看上面的结构图就可以了。

4.1 TbUserController

点击查看完整内容
TbUserController

Controller类,里面一般是api调用的入口,我们后端调用一般正规流程就是Controller——Service——Impl。博主这里虽然简单,但是也是最正统的流程步骤。里面每一个方法名字都是拼音缩写,我就不写注释了,应该很容易懂,就是简单的增删改查(CRUD)

4.2 TbUserMapper

点击查看完整内容
TbUserMapper

Mapper一般我们不放什么代码,如果你自定义sql查询可以放在这里,这里不举例了。一般我们简单的查询,使用Mybatic-plus自带的已经可以实现95%的查询了。复杂查询需要深入学习Mybatic才可以,三言两语说不了。

4.3 TbUserDO

点击查看完整内容
TbUserDO

这里就是你数据库表的映射了,你可以看到,它出现了两个字段,对应的也就是id,name了。这里可以补充一个知识,我们可以看到结尾为DO,DO的意思一般是我们和数据库交互使用的类的意思,如果要返回给前端,我们会重新建一个类,结尾为VO,这是一种正统的编写规范,因为DO类有可能有一些字段我们不想让用户知道,所以建立一个VO让用户知道少一点,至于更详细的类结尾(如DTO、Request等)相关百度吧。

4.4 TbUserServiceImpl

因为这里是最重要的地方,我将会写超详细的注释说明,基本注释到每一行代码!其他地方相信小伙伴们可以自己理解!

点击查看完整内容

TbUserServiceImpl

这里是最重要的Impl类了,我们基本所有的逻辑步骤都会写在这里,这里也是最复杂的地方了,这里我们就用上我们的java知识,然后对从数据库中获得的数据进行各种处理,然后返回给用户,好了,后端的任务结束了,就是那么简单。当然,不可能那么简单,[aru_22]。这里有一个概念就可以了

4.5 TbUserService

点击查看完整内容
TbUserService

Service层,一般我们自定义接口位置就在这个位置,如本文中的例子,就是在这里写了4个接口,增删改查。

4.6 TbUserMapper.xml

点击查看完整内容
TbUserMapper.xml

这个位置就是写你自定义的Mybatic代码的位置了,需要学习Mybatic才可以在这里写东西,一般我们使用Mybatic-plus给我们的接口也已经够实现了,这里不多说。

4.7 application.yml

点击查看完整内容

有些小伙伴想使用连接池,这里推荐阿里数据库连接池Druid

点击查看完整内容
application.yml

这里一般我们叫配置文件,博主这里使用的是yaml结尾的格式,一般在大学,上课老师教的都是properties结尾,这两个其实没有什么区别,yaml企业要用得多一些,看起来比较美观,这里不多说,也很多知识。这里如果之前是properties,想要转成yaml可以看下面的文章,里面有教如何快速转换。

基于Mybatis的mysql数据实战——第二课

3年前 (2021-10-30) 0
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图20

4.8 pom.xml

pom.xml

这个内容我也放出来了,避免有些小伙伴出现不必要的错误!

点击查看完整内容

运行项目

将上面的代码全都复制粘贴好了之后,运行主程序,如图所示。

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图22

出现和博主一样的画面,就是运行成功了! [aru_51]

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图24

五、postman测试(博主精品软件中也有)

温馨提示
  • 什么是postman
    • postman简单来说就是一个方便我们测试后端接口的工具。
  • 什么是“接口”api?
    • 如下图,前端人员需要的就是那一串url地址,前端通过发起http请求,然后就会通知我们后端,后端对数据进行处理之后,返回给前端处理好的json数据等,这就是所谓的前后端交互了。
    • 博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图26

5.1 增加

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图28

温馨提示

这里我们要注意的就是Get、Post等的选择,千万不要选错了,要不会报错,这里指向的就是我们在Controller里面写的规则,如图:
博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图30
具体详情可以看这篇文章:浅谈HTTP中Get、Post、Put与Delete的区别
有些教程会让我们使用@RequestMapping注解,这个可以等同于@GetMapping、@PostMapping。总结下来就是@PostMapping和@GetMapping都可以用@RequestMapping代替,如果读者怕在映射的时候出错,可以统一写@RequestMapping,当然这样写的话也有弊端,笼统的全用@RequestMapping, 不便于其他人对代码的阅读和理解!还是建议区分开来写!养成良好的代码习惯!
这里我们并没有输入id的值,因为我们在数据库中设置了id自增,所以就不需要输入id,在企业中,大多数时候都不是用id自增的,很多都是用什么雪花算法、UUID之类的来生成id,所以这里也是一个需要注意的点!

5.2 根据id删除

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图32

温馨提示

这里我们根据id删除,直接输入id就可以了,很简单

5.3 修改、编辑

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图34

温馨提示

这里我们不仅传入了name,还传入了id,因为我们需要知道要修改的是哪一条数据,所以需要传入id

5.4 根据id查询

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图36

温馨提示

这里我们是根据id进行查找相应的数据,相信小伙伴们也明白了,根据姓名查找也很简单

六、大功告成

经过上面的一系列操作,可能有些小伙伴应该已经头晕了,[aru_1],其实这只是最简单的,以后弄多了就简单了,在公司也是一样的操作,这基本上就是公司的实操了,没有什么区别,唯一的区别就是impl里面可能会更复杂一点而已,需求不一样,代码难度就不一样。很多学习Java的小伙伴不知道学习了java来了有什么用,具体能做什么,没错,一般程序员就是做增删改查,和上面的例子基本一样,就是数据库字段多一点,需求怪一点,但是流程就是和博主一样的,没有区别。如果有懂哥来杠我高并发、分布式之类的不一样当我没说[aru_13],这里只是说简单的增删改查!
补充说明1

相信看到这里,详细看Impl类的小伙伴们应该已经懂了,不就是调接口嘛,简单!没错,就是那么简单,看到这里有些小伙伴说,我没看到查询整张表的操作呀。我只给出impl的关键代码,相信其他的部分,你们也会的! [aru_36]

        List<TbUserDO> list = new ArrayList<>();
        list = userMapper.selectList(new QueryWrapper<TbUserDO>());

具体详情可以看这篇文章:浅谈HTTP中Get、Post、Put与Delete的区别

常见问题汇总

一、时区问题

两个位置添加对应的时区,这里如果你使用的是本地mysql数据库,就有可能出现这个问题,如果使用的是云服务器,那么一般不会出现这个问题。

修改为以下的代码

jdbc:mysql://你的ip:3306/st-test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT

application.yml

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图38

MyBatisPlusGenerator

博主精品——一个最简单的增删改查(正统SpringBoot实现,标准流程操作,优雅!)插图40

发表评论 取消回复
表情 图片 链接 代码

  1. 小源
    小源 Lv 1

    爱你

  2. 然
    Lv 1

  3. 固游
    固游 Lv 1

    这个包对应的是什么呀?
    查看图片

分享