基于Springboot的SSMP项目实战总结

基于SpringBoot的SSMP整合 SSMP,SpringBoot和MyBatis-Plus的出现大大简化了我们的开发,提升了开发效率,切记过度依赖。。。 阅读详情

1.新建一个空项目

2.在空项目中,新建Spring项目,勾选Spring web和MySQL Driver

        2.1 注意java版本要改为17,包名删除掉  .demo

        2.2 勾选Spring web和MySQL Driver

tips:将”压缩空的中间软件包“前的√去掉,这样视图好看一些

3.配置起步依赖

配置MybatisPlus、Druid、lombok依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

如果没有符合的可以去Maven官网https://mvnrepository.com/寻找对应依赖

4.修改application.properties类型为yml

        4.1 直接重构文件名为yml,图标为绿叶子即成功

        4.2 配置端口 80,每一个冒号后面都要有空格,不然会报错

server:
  port: 80

        4.3 配置数据源

spring:
  dataSource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/表名?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&AutoReconnect=true&serverTimezone=Asia/Shanghai
      username: 自己数据库用户名
      password: 数据库密码

        4.4 配置框架技术相关配置

                table-prefix: 表名前缀

                id-type: 配合表中主键自增长使用

                log-impl: 开启MP运行日志

mybatis-plus:
  global-config:
    db-config:
      table-prefix: t_
      id-type: auto
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

tips: 在yml文件中写的时候,idea有时候会给提示,有时候不会给,估计是idea的问题,没有就只能自己打了,注意结构和冒号后的空格,以及大小写也要区分,不然一定会报错。

5.利用lombok开发实体类

        5.1新建domain.类名,类名自定义和对应数据库相关即可

        5.2 类上加注解@Data,自动配置所有的Getter&Setter等方法,快捷键Ctrl+F12查看

        5.3 加注解@TableName(value = "表名"),连接到对应表

        5.4 在类中定义表中所有的变量,均定义为private,变量名最好和表中字段相同,且表中字段名不要有下划线,不然测试时返回的永远是null

6.整合MybatisPlus,开发数据层接口,进行测试

        6.1 新建接口dao.实体类名Dao

        6.2 加入注解@Mapper

        6.3 整合MybatisPlus,类后继承BaseMapper,按Ctrl+F12,查看所有方法

public interface 类名Dao extends BaseMapper<类>
{

}

7.整合MybatisPlus开发业务层接口

        7.1 新建接口service.I实体类名Service

        7.2 整合MybatisPlus,继承IService<实体类名>,按Ctrl+F12,查看所有方法

        7.3 如果有其他需要的方法,在接口中定义即可,一般为Boolen型,因为业务层都是逻辑关系

public interface I实体类名Service extends IService<实体类名>
{


    Boolean 功能名(实体类名 对象名);
}

        7.4 业务层实现

                7.4.1 在service包下新建包impl,新建类:实体类名ServiceImpl

                7.4.2 加入注解@Service,扩展ServiceImpl和继承业务层接口

                7.4.3 注入数据层接口,加上注解@Autowired

                7.4.4 将业务层接口中定义的其他方法加入进来,return的是某值 > 0,表示操作成功

@Service
public class 实体类名ServiceImpl extends ServiceImpl<实体类名Dao, 实体类名> implements I实体类名Service
{
    @Autowired
    private 实体类名Dao stationDao;

    @Override
    public Boolean 方法(实体类名 对象名)
    {
        return stationDao.对应方法(对象名) > 0;
    }
}

最后,记得去测试,注入业务层,测试对应的功能即可

8.基于Restful开发表现层

表现层调用业务层的接口

        8.1 新建controller.实体类名Controller

        8.2 类上加注解@RestController,@RequestMapping("/实体类名s")

                地址是rest风格

        8.2 将业务层注入

        8.3 对于增删改查的4个功能,对应的注解分别是@PostMapping,DeleteMapping("{id}"),@PutMapping,@GetMapping("{id}")

                8.3.1 增和改:在方法参数中需要添加注解@RequestBody,用于是处理HTTP请求参数的注解,将请求的json或xml转化为bean对象或Map对象

                8.3.2 删和查:在方法参数中需要添加注解@PathVariable,用于接收请求路径中占位符的值

        8.4 实现每个功能的方法类型设置为R,返回的也是R型的结果,这是为了前端人员好调用、看懂,需要写前后端数据协议,即写一个返回值结果模型类,用于后端与前端进行数据格式统一

每个方法返回的值均为new R()

 @GetMapping
    public R  getAll()
    {
        return new R(true,stationService.list());
    }

    /***
     * 新增
     * @param station
     * @return
     */
    @PostMapping
    public R save(@RequestBody Station station) throws IOException
    {

        if(true) throw new IOException();
        return new R(stationService.save(station));

    }

    /**
     * 修改
     */
    @PutMapping
    public R update(@RequestBody Station station)
    {
        return new R(stationService.modify(station));

    }

    @DeleteMapping("{id}")
    public R delete(@PathVariable Integer id)
    {

        return new R(stationService.removeById(id));
    }

    @GetMapping("{id}")
    public R getById(@PathVariable Integer id)
    {

        return new R(true,stationService.removeById(id));
    }
}

9. 返回值结果模型类(前后端数据协议)

        9.1 在controller下新建utils.R类,类上添加注解@Data

        9.2 定义三个变量用于:是否查询成功、获得的数据、返回异常信息

    private Boolean flag;
    private Object data;//返回的数据类型是不定的,所以这里需要定义为Object型
    private String msg;

        9.3 编写方法:查询成功:flag = true,数据为空:data = null,msg:异常信息

  public R(Boolean flag)//是否查询成功
    {
        this.flag = flag;
    }
    public R(Boolean flag,Object data)//是否查询成功、查询到的数据是否为空
    {
        this.flag = flag;
        this.data = data;
    }

    public R(String msg)//查询失败时,返回异常信息
    {
        this.flag = false;
        this.msg = msg;
    }

10.异常处理器

        10.1 新建utils.ProjectExceptionAdvice类

        10.2 新建R型的拦截所有异常信息的方法,增加注解@ExceptionHandler,加入形参exception

        10.3 使用e.printStackTrace,它是一个非常简单但非常有用的诊断异常的工具,有助于跟踪异常,告诉你发生了什么以及代码错误发生在哪里

        10.4 返回new R(msg),这里要调用到R里的第三个方法

//作为springmvc的异常处理器
@RestControllerAdvice
public class ProjectExceptionAdvice
{
    //拦截所有的异常信息
    @ExceptionHandler
    public R doException(Exception exception)
    {

        exception.printStackTrace();
        return new R("服务器故障");
    }
}

11.在postman中测试整个项目所有的功能

        在测试之前一定要先启动springboot项目,点击运行

        11.1 查找功能测试:

                11.1.1 查找所有

        

                 11.1.2 按照id查找

         11.2 删除功能测试:

        

        11.3 增加功能测试

                11.3.1 键入地址

                11.3.2 选择Body

                11.3.3 点击raw,选择json格式

                11.3.4 输入表中各个字段名和设置的对应的值,点击send即可测试

        11.4 修改功能测试

                大致都与增加功能测试相同,将POST改为PUT,指定你要修改的某条记录,所以要多设置一个id的值,点击send测试即可。

{
    "id": 4,
    "整型字段名": 1,
    "varchar型字段名": "字段值",
}

该篇是对于后端开发的一些工作流程的总结,仅涉及到一点点原理,没有系统学过SSM,可以找时间补充一下。

学习内容来自黑马李老师,感谢。

=========================================================================

2022.3.26

总结一下最近实现自定义功能的开发流程

1.首先确定自己需要的具体功能

2.看数据层有没有可以调用的方法,如果没有,就需要自己写一个方法,注意mysql语句要写对

3.看业务层有没有可以直接调用的方法,如果没有,就自己写,在实现类里,完成逻辑操作,调用到数据层接口

4.控制层中传入参数,调用业务层接口

5.如果每层都有直接可以调用的方法,比如按照条件删除,那就去控制层写逻辑操作。

         

告别OpenAI API调用:手把手在本地CPU/GPU上部署fast-whisper中文语音识别模型 本文详细指导如何在本地CPU/GPU上部署fast-whisper中文语音识别模型,摆脱对OpenAI API的依赖。从环境准备、模型获取与优化,到CPU/GPU环境的具体部署步骤和性能优化技巧,全面覆盖本地化语音识别的实现方案,帮助开发者提升效率并保障数据隐私。 阅读详情

相关推荐

VisionPro开发实战:CogRecordDisplay控件显示与保存图片的完整流程(附C#代码示例)

本文详细解析了VisionPro开发中CogRecordDisplay控件的图像处理全流程,包括图像加载、显示优化、动态清屏及结果保存等关键操作。通过C#代码示例,展示了如何高效使用该控件进行工业视觉应用开发,特别适合自动化检测系统的开发者参考。

weixin_42523792的博客 276

Servlet、SSH、SSM及SpringBoot总结&投票

新开源项目征集投票 投票地址 感谢你的投票,后期会参考投票结果,开源项目源码。 前言 往期推送分别利用Servlet、SSH、SSM及SpringBoot技术实现了简单的登录、注册、增、删、改、查等功能,并介绍了基本技术原理,目的即是通过简单的Java项目实例对以上技术原理更深入的了解、学习,从而为复杂的系统项目的开发奠定基础以及面试时更能够对JavaWeb技术的把控。 以下4部分分别简要总结Servlet、SSH、SSM及SpringBoot的概念和优缺点,详细原理了解以及简...

我要学Java_blog 1614

用Python的fengwo模块复刻通达信筹码峰(COST/WINNER),选股效率提升10倍

本文介绍了如何使用Python的fengwo模块高效复刻通达信的筹码峰(COST/WINNER)计算,显著提升选股效率。通过C++内核与多线程优化,fengwo模块将传统Python实现的数小时计算压缩至分钟级,解决了量化交易中的性能瓶颈问题。文章详细解析了筹码峰计算原理、fengwo模块的技术架构及实战应用,助力量化开发者构建高效选股系统。

weixin_29062823的博客 438

关于ssm、springboot以及Mybatis的学习小结

背景: BookDao package com.itheima.dao; public interface BookDao { public void save(); } BookDaoImpl package com.itheima.dao.impl; import com.itheima.dao.BookDao; public class BookDaoImpl implements BookDao { public void save() { System.out.

CVPR收割机的博客 423

大模型选型实战指南|教育行业:108个模型「闭卷考试」实测,这3类应用场景直接抄作业!

教育行业大模型选型必读 1.闭卷考试!独家评测集:用最新K12真题(小学-高中全学科)构建“闭卷考场”,108个模型同台竞技,数据污染率<5%(传统评测集污染率超60%) 2.价格透明对比:40元/M tokens的阿里系模型VS 2元/M tokens的字节系、腾讯系模型,谁更值? 3.四大选型禁区:>60元但得分<75的模型被列入不推荐名单(附避坑清单) 4.核心结论直出:教学核心环节必须用专用模型,90%场景用通用模型可降本50%+

easyllm的博客 1523

ccproxy 6.61 注册机(纯绿/傻瓜/真正去除线程限制)

导读:   软件介绍   1、 CCPROXY 6.61 注册机(纯绿/傻瓜/真正去除线程限制)   ***前言,这次的升级官方改动不大,据说只是为了不被某些软件当病毒***   附件包中解压即免安装版,CcREGTOOLFF.exe为注册机。   本人继续向大家隆重推出《CCPROXY6.61哎呀……破解版》   还是那个提示:   在此之前,本人还是那句老话想提示大家,CCPROXY是

i53nd的专栏 1万+

基于SpringBoot的完成SSM整合项目开发案例

我们完成这个案例基本是将之前做的拷贝过来,修改成。放置在resources目录下的static目录中。工程不需要这些配置类,所以这些可以直接删除。工程不需要这些配置类,所以这些可以直接删除。配置起步依赖,必要的资源坐标(druid)程序中静态资源需要放在什么位置呢?程序中静态资源需要放在什么位置呢?工程,在创建工程时需要勾选。代码及测试代码连同包拷贝到。代码及测试代码连同包拷贝到。配置文件中需要配置如下内容。配置文件中需要配置如下内容。工程中需要在接口中添加。工程中需要在接口中添加。包下的接口上在拷贝到。.

黑马程序员官方博客 1400

HFSS实战(三)——过孔via TDR仿真

在上一讲中,主要是通过观察S参数确定via的优化是否达到目标。但S参数只能看到一个整体的结果,并不知道via真实的阻抗是多少?想要单独确定via的阻抗,最好还是通过TDR的仿真。

luohuo9844的博客 1万+

SpringBoot -基于SpringBoot的SSMP整合案例(三)- 业务层开发

SpringBoot -基于SpringBoot的SSMP整合案例(三)- 业务层开发

qq_39123467的博客 1056

手把手教你学Simulink——基于Simulink的无感FOC(滑模观测器+PLL)实战

摘要: 本文详细介绍了基于Simulink的无感FOC(滑模观测器+PLL)实现方法。主要内容包括:1)SMO+PLL原理,通过滑模观测器估算反电动势,结合PLL抑制抖振;2)系统架构,替代编码器信号;3)Simulink建模流程,涵盖Clarke变换、SMO离散化实现、PLL设计等关键步骤;4)参数整定指南和工程实践要点,如启动策略和故障处理。该方法具有成本低、可靠性高的优势,适用于家电、电动车等场景,仿真结果显示角度误差±5°,速度动态跟随良好。文章还提供了调试建议和常见问题解决方案。

MHD0815的博客 136

1.2 amdgpu_bo的设计分析 — gem层和ttm层

本文分析了AMD KFD的BO设计架构,重点介绍了DRM子系统中缓冲对象的多层继承关系。文章首先展示了核心继承层次图,包括DRM通用层(drm_gem_object)、TTM内存管理层(ttm_buffer_object)、AMD驱动层(amdgpu_bo)和KFD计算层(kgd_mem)。随后详细解析了drm_gem_object结构体的关键功能,包括用户空间接口管理、内存映射支持、引用计数机制以及DMA-BUF导入/导出功能。

图形/计算GPU的驱动与虚拟化技术分享园地 2548

项目管理与SSM框架——Spring

Spring 文章目录 Spring @[TOC](文章目录) 一、Spring介绍 1.Spring简介 2.Spring体系结构 二、SpringIOC 1.控制反转思想 2.自定义对象容器 3.Spring实现IOC 4.Spring容器类型 5.对象创建方式 6.对象的创建策略 7.对象的销毁时机 8.生命周期方法 9.获取Bean对象的方式 三、依赖注入 1.什么是依赖注入 2.依赖注入方式 3.依赖注入类型 四、注解实现IOC 1.@Component 2.@Repository、@Servic

TIpotencial的博客 1066

国科大学习资料--VLSI测试与可测试设计--2020期末考试试题

国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 国科大学习资料–VLSI测试与可测试设计–2020期末考试试题 一、概念题 1简述可测试性测度与两个主要的测度指标的含义; 2以March C-算法为例,说明March算法的构成,以及March C-算法的故障覆盖率; 3“效果-原因”诊断法和“原因效果诊断法”的不同; 4列举四条扫描设计时出现的问 题及解决办法; 5最少写出1149.1与1500的五点不同; = = = = =

无名何许人的博客 1150

SpringBoot基础学习7——SSMP整合案例

SpringBoot学习笔记 一、SpringBoot基础学习1——入门案例(idea联网版) 二、SpringBoot基础学习2——入门案例(官网创建版) 三、SpringBoot基础学习3——入门案例(阿里云版) 四、SpringBoot基础学习4——REST开发相关知识 五、SpringBoot基础学习5——基础配置 SpringBoot基础学习7——SSMP整合案例SpringBoot学习笔记一、案例效果二、案例实现方案分析与流程解析三、模块创建与项目目录结构四、pom.xml文件五、数据库文件

云间月呀 1586

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SpringBoot SpringBoot 基础篇 4 基于 SpringBoot 的SSMP 整合案例 4.1 SSMP 整合案例制作分析

SpringBoot SpringBoot 基础篇 4 基于 SpringBoot 的SSMP 整合案例 4.1 SSMP 整合案例制作分析

代码改变世界 215

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SpringBoot基础

SpringBoot基础1 课程内容说明2 课程前置知识说明3 SpringBoot基础篇JC-1.快速上手SpringBootJC-1-1.SpringBoot入门程序制作(一)JC-1-2.SpringBoot入门程序制作(二)JC-1-3.SpringBoot入门程序制作(三)JC-1-4.SpringBoot入门程序制作(四)教你一招:在Idea中隐藏指定文件/文件夹JC-1-5.SpringBoot简介parentstarter引导类内嵌tomcatRESTJC-2.SpringBoot基础配置J

qq_60225495的博客 169

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SpringBoot2零基础到项目实战-基础篇

SpringBoot技术是目前市面上从事JavaEE企业级开发过程中使用量最大的技术。本视频围绕SpringBoot技术由浅入深带领学习者从小白身份入门SpringBoot。经过若干个案例的制作与学习,全面掌握在企业级开发过程中如何使用SpringBoot技术将市面上各个层面各个领域的实用技术整合在一起工作,并应用于企业级开发各个层面的实际问题。

我亦无他,唯手熟尔 1163

黑马程序员SpringBoot基础篇SSMP整合案例

黑马程序员SpringBoot基础篇SSMP整合案例

鲁棒最小二乘支持向量机 3730

SpringBoot-基础篇

​ 在基础篇中,我给学习者的定位是先上手,能够使用SpringBoot搭建基于SpringBoot的web项目开发,所以内容设置较少,主要包含如下内容:​ 学习任意一项技术,首先要知道这个技术的作用是什么,不然学完以后,你都不知道什么时候使用这个技术,也就是技术对应的应用场景。SpringBoot技术由Pivotal团队研发制作,功能的话简单概括就是加速Spring程序的开发,这个加速要从如下两个方面来说​ 通过上面两个方面的定位,我们可以产生两个模糊的概念:​ 带着上面这些疑问我们就着手第一个Sprin

爪蛙毁一生的博客 804

基于SSMP的宠物医院管理系统

一个叛逆的实训记录

whale_1901的博客 219

springboot零基础到项目实战

SpringBoot这门技术课程所包含的技术点其实并不是很多,但是围绕着SpringBoot的周边知识,也就是SpringBoot整合其他技术,这样的知识量很大,例如SpringBoot整合MyBatis等等。因此为了能够将本课程制作的能够适应于各个层面的学习者进行学习,

技术专家 2530

SpringBoot SpringBoot 基础篇 4 基于 SpringBoot 的SSMP 整合案例 4.16 修改功能

SpringBoot SpringBoot 基础篇 4 基于 SpringBoot 的SSMP 整合案例 4.16 修改功能

代码改变世界 532

[SpringBoot系列]SpringBoot如何整合SSMP

基于SpringBoot实现SSMP整合 整合JUnit 整合MyBatis 整合MyBatis-Plus 整合Druid

十八岁讨厌编程的博客 2507

【SpringBoot】SSMP整合案例

文章目录SSMP整合案例1.模块创建2. 实体类开发3. 持久层开发4. 业务层开发5. 表现层开发6. 表现层消息一致化7. 前端环境准备8. 前后端协议联调列表展示功能添加功能修改功能9. 业务消息一致性处理1. 异常统一处理2. 表现层统一处理消息10. 分页功能实现删除功能异常解决11.条件查询功能 SSMP整合案例 根据黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战实现 1.模块创建 创建SpringBoot项目 勾选Spring-MVC和MySQL

qq_29942585的博客 1901

从头开始学SpringBoot—02ssmp整合及案例

SpringBoot系列02部分——SpringBoot实现SSMP整合及详细的案例教程

青春无问西东 岁月自成芳华 1824

基于SpringBoot的SSMP整合案例

SSMP(Spring+SpringMVC+MyBatis),通过SpringBoot整合SSMP来完成增删改查案例。

jakelihua 845
上一篇: 与MySQL有关的问题
SyMi0njava
博客等级 码龄5年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值