当前位置: 首页 > news >正文

基于springboot+mybatis+vue的项目实战之(后端+前后端联调)

步骤:

1、项目准备:创建数据库(之前已经创建则忽略),以及数据库连接

2、建立项目结构文件夹

3、编写pojo文件

4、编写mapper文件,并测试sql语句是否正确

5、编写service文件

6、编写controller文件

7、测试后端程序是否正确

8、前后端联调

1、项目准备:创建数据库(之前已经创建则忽略),以及数据库连接

use heima;-- 诗人表
create table peom(id int unsigned primary key auto_increment comment 'ID',author varchar(100)  comment '姓名',gender varchar(4) comment '性别, 1:男, 2:女',dynasty varchar(100)  comment '朝代',title varchar(100)  comment '头衔',style varchar(100)  comment '风格'
) comment '诗人表';
-- 测试数据
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'陶渊明','1','东晋末至南朝宋初期','诗人和辞赋家','古今隐逸诗人之宗');
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'王维','1','唐代','诗佛','空灵、寂静');
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'李商隐','2','唐代','诗坛鬼才','无');
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'李白','1','唐代','诗仙','豪放飘逸的诗风和丰富的想象力');
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'李清照','2','宋代','女词人','婉约风格');
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'杜甫','1','唐代','诗圣','反映社会现实和人民疾苦');
insert into peom(id,author,gender, dynasty, title, style) VALUES (null,'苏轼','1','北宋','文学家、书画家,诗神','清新豪健的诗风和独特的艺术表现力');

2、建立项目结构文件夹

3、编写pojo文件

package com.example.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class Peot {private Integer id;private String author;private String gender;private String dynasty;private String title;private String style;
}

package com.example.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {private Integer code;//响应码,1 代表成功; 0 代表失败private String msg;  //响应信息 描述字符串private Object data; //返回的数据//增删改 成功响应public static Result success(){return new Result(1,"success",null);}//查询 成功响应public static Result success(Object data){return new Result(1,"success",data);}//失败响应public static Result error(String msg){return new Result(0,msg,null);}
}

4、编写mapper文件,并测试sql语句是否正确

package com.example.mapper;import com.example.pojo.Peot;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
//@Mapper: 这个注解一般使用在Dao层接口上,
// 相当于一个mapper.xml文件,它的作用就是将接口生成一个动态代理类。加入了@Mapper注解,
// 目的就是为了不再写mapper映射文件。这个注解就是用来映射mapper.xml文件的。
public interface PeotMapper {@Select("select * from peom")public List<Peot> findAll();}

5、编写service文件

package com.example.service;import com.example.pojo.Peot;
import com.example.pojo.Result;import java.util.List;public interface PeotService {public List<Peot> findAll();}
package com.example.service.impl;import com.example.mapper.PeotMapper;
import com.example.pojo.Peot;
import com.example.pojo.Result;
import com.example.service.PeotService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
//@Service 是 Spring 框架提供的一种注解,用于标识一个类作为服务层组件 (Service)。
// 通过使用 @Service 注解,可以将一个普通的 Java 类标记为服务层组件,并由 Spring 容器进行管理和注入。
public class PeotServiceImpl implements PeotService {@Autowiredprivate PeotMapper peotMapper;//直接返回数据列表@Overridepublic List<Peot> findAll() {return peotMapper.findAll();}
}

6、编写controller文件

package com.example.controller;import com.example.pojo.Peot;
import com.example.pojo.Result;
import com.example.service.PeotService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
//相当于@ResponseBody+@Controller
//Controller中的方法会用于返回页面视图的
//@ResponseBody注解标识后,响应数据可以是文本或者JSON数据类型
public class PeotController {@Autowiredprivate PeotService peotService;//查询全部,返回的是Result类型的json数据。@RequestMapping("/peotfindAllJson")public Result findAllJson(){return Result.success(peotService.findAll());}//查询全部,返回的是Result类型的json数据。@RequestMapping("/peotfindAll")public List<Peot> findAll(){return peotService.findAll();}}

7、测试后端程序是否正确

8、前后端联调

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>诗人信息</title>
</head><script src="./js/vue.js"></script>
<script src="./js/axios-0.18.0.js"></script><body><h1 align="center">诗人信息列表展示</h1><div id="app" align="center"><table border="1" cellspacing="0" width="60%"><tr><th>序号</th><th>姓名</th><th>性别</th><th>朝代</th><th>头衔</th><th>风格</th><th>操作</th></tr><tr align="center" v-for="(peot,index) in tableData"><td>{{peot.id}}</td><td>{{peot.author}}</td><td>{{peot.gender}}</td><td>{{peot.dynasty}}</td><td>{{peot.title}}</td><td>{{peot.style}}</td><td class="text-center"><!--a :href="'peot_edit.html?id='+peot.id"--><!--button type="button" @click="deleteId(peot.id)-->修改删除</td></tr></table>
</div>
</body><script>new Vue({el: "#app",data() {return {tableData: []}},mounted(){//https://mock.apifox.com/m1/3761592-3393136-default/peotfindAll?apifoxApiId=171587808//peotfindAllJson  返回类型为Result
/*      axios.get('peotfindAllJson').then(res=>{if(res.data.code){this.tableData = res.data.data;}*///peotfindAll   返回类型为List类型axios.get('peotfindAll').then(res=>{this.tableData = res.data;});},});
</script>
</html>

相关文章:

基于springboot+mybatis+vue的项目实战之(后端+前后端联调)

步骤&#xff1a; 1、项目准备&#xff1a;创建数据库&#xff08;之前已经创建则忽略&#xff09;&#xff0c;以及数据库连接 2、建立项目结构文件夹 3、编写pojo文件 4、编写mapper文件&#xff0c;并测试sql语句是否正确 5、编写service文件 6、编写controller文件 …...

【教程向】从零开始创建浏览器插件(六)实战篇

【教程向】从零开始创建浏览器插件(六)实战篇 在这篇文章中,我们将详细介绍一个名为“摸鱼King”的Chrome扩展程序的开发思路。这个扩展程序的主要功能是在用户浏览网页时提供便捷的方式来摸鱼看小说。 完整的工程我放在了完整工程,可以下载下来自己试一试。 1. 主要功能…...

如何用 OceanBase做业务开发——【DBA从入门到实践】第六期

当应用一款新的数据库时&#xff0c;除了基础的安装部署步骤&#xff0c;掌握其应用开发方法才是实现数据库价值的关键。为此&#xff0c;我们特别安排了5月15日&#xff08;周三&#xff09;的《DBA 从入门到实践》第六期课程——本次课程将带大家了解OceanBase数据库的开发流…...

Element-UI快速入门

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…...

【JavaWeb】网上蛋糕商城后台-商品管理

概念 本文讲解和实现网上蛋糕商城的后台管理系统中的商品管理功能。 商品列表 点击后台管理系统的head.jsp头部的“商品管理”功能选项&#xff0c;向服务器发送请求/admin/goods_list 因此需要在servlet包中创建AdminGoodsListServlet类&#xff0c;用于获取商品信息列表 …...

Django Admin后台管理:高效开发与实践

title: Django Admin后台管理&#xff1a;高效开发与实践 date: 2024/5/8 14:24:15 updated: 2024/5/8 14:24:15 categories: 后端开发 tags: DjangoAdmin模型管理用户认证数据优化自定义扩展实战案例性能安全 第1章&#xff1a;Django Admin基础 1.1 Django Admin简介 Dj…...

Centos7网卡启动失败(Failed to start LSB: Bring up/down)

好雨知时节 当春乃发生 随风潜入夜 润物细无声 报错内容 启动虚拟机时&#xff0c;Ceotos的虚拟网卡没有一起启动&#xff0c;导致服务无法正常使用 查询网络启动状态 systemctl status network.service报Failed to start LSB: Bring up/down 查看网络启动日志 journalctl…...

【NOIP2008普及组复赛】 题4:立体图

题4&#xff1a;立体图 【题目描述】 小渊是个聪明的孩子&#xff0c;他经常会给周围的小朋友讲些自己认为有趣的内容。最近&#xff0c;他准备给小朋友讲解立体图&#xff0c;请你帮他画出立体图。 小渊有一块面积为mn的矩形区域&#xff0c;上面有mn个边长为1的格子&#…...

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(76)

1. 题目解析 题目链接&#xff1a;LCR 091. 粉刷房子 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 1. 状态定义 在解决这类问题时&#xff0c;我们首先需要根据题目的具体要求来定义状态。针对房屋粉刷问题&#…...

Windows---CMD常用指令大全

CMD是什么&#xff1f; Windows操作系统中的命令行界面程序&#xff0c;全称为命令提示符 CMD可以干什么&#xff1f; 允许用户在文本界面下输入命令来执行各种操作&#xff0c;如文件管理、系统设置、软件安装等 帮助用户更好地控制和管理Windows系统 windows系统CMD指…...

消息中间件是什么?有什么用?常见的消息中间件有哪些?

1.什么是消息中间件&#xff1f; 消息中间件基于队列模型在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。 2.现实中的痛点&#xff1a; 1.Http请求基于请求与响应的模型&#xff0c;在高并发的情况下&#xff0c;客户端发送大量的请求达到服务器端…...

富锂锰基材料极具发展潜力 我国产业化进程加速

富锂锰基材料极具发展潜力 我国产业化进程加速 富锂锰基材料以锰元素为主&#xff0c;我国锰资源较丰富&#xff0c;相比于铁锂材料、高镍三元材料&#xff0c;富锂锰基材料具有一定的降本潜力。此外富锂锰基材料在能量密度、充放电倍率等方面也具有明显优势。富锂锰基材料是富…...

聚水潭和金蝶云星空单据接口对接

聚水潭和金蝶云星空单据接口对接 对接系统&#xff1a;金蝶云星空 金蝶K/3Cloud&#xff08;金蝶云星空&#xff09;是移动互联网时代的新型ERP&#xff0c;是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&#xff0c;旨在帮助企业打造…...

OpenAI深夜震撼发布最新模型GPT-4o,送上最快速便捷教程

北京时间5月14日凌晨&#xff0c;有人说OpenAI一夜改变了历史。 在我们的深夜、太平洋时间的上午 10 点&#xff0c;OpenAI 召开春季发布会&#xff0c;公布了最新的GPT-4o模型&#xff0c;o代表Omnimodel&#xff08;全能模型&#xff09;。20多分钟的演示直播&#xff0c;展…...

没有申请域名的情况下,用navicat远程连接我们的服务器的Mysql数据库

我们可以根据公网ip用shell来远程连接 首先我们打开自己买的服务器 例如你看这个&#xff0c;就是我们的公网IP 如果服务器里面没有安装mysql数据库的话&#xff0c;那么我们可以用一个轻量级的docker来安装数据库代替一下 我们用docker弄个轻量级的mysql5.7.36&#xff0c;…...

Hive中小文件过多的几种处理方式

1、使用concatenate&#xff08;只支持RCFile和ORC格式&#xff09; 2、减少map数量&#xff0c;调整参数&#xff1a;输入合并文件相关的参数 3、减少reduce的数量&#xff08;例如直接设置reduce为xx个、或者设置reduce的大小&#xff0c;系统自动根据大小确定reduce的个数…...

用户登录认证和权限授权(SpringSecurity、JWT、session)

文章目录 前言一、登录认证1. 问题引入2. Session2.1 实现原理2.2 过滤器Filter2.3 上下文对象 3. JWT3.2 实现步骤3.3 拦截器 HandlerInterceptorAdapter3.4 上下文对象 4. Session VS JWT 二、权限授权1. 权限类型1.1 页面权限&#xff08;菜单项权限&#xff09;1.2 ACL模型…...

第十二届蓝桥杯省赛真题 Java A 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 相乘试题 B: 直线试题 C : \mathrm{C}: C: 货物摆放试题 D: 路径试题 E: 回路计数试题 F : \mathrm{F}: F: 最少砝码试题 G: 左孩子右兄弟试题 H : \mathrm{H}: H: 异或数列试题 I \mathbf{I} I 双向排序试题 J : \mathrm{J}: J: 分…...

工作随机:linux 挂载LVM管理模式的磁盘

文章目录 前言一、创建一个分区二、创建PV三、创建VG四、创建LV五、格式化并挂载目录 前言 在数据库管理中&#xff0c;常有比较头疼的问题&#xff0c;就是一段时间发展后我的磁盘空间不够了&#xff0c;想要扩容原有的目录很是头疼&#xff0c;那么LVM管理的优势就体现出来了…...

打印kafka最近的消息

使用 kafka-run-class 指令&#xff0c;获取topic的最小offset和最大offset #查看各个分区的最小offset(这个意思就是&#xff0c;这个offset之前的消息已经被清除了&#xff0c;现在consumer是从这个offset之后开始消费): ./kafka-run-class.sh kafka.tools.GetOffsetShell …...

工业智能网关:三菱FX3U PLC数据采集

调试准备&#xff1a; 需要准备的材料&#xff1a;HINET 智能网关、现场安装三菱 FX3U、网线等&#xff1b;网关和 PLC 的连接方式&#xff1a;网关 LAN 口直接和 PLC 网线连接&#xff1b; PLC 和网关的 IP 地址以及现场联网条件说明&#xff1a; 三菱 FX3U 的 IP&#xff1a;…...

从零讲透 Agent 智能体:不只是大模型,而是“会干活的 AI”

一、为什么突然都在聊 Agent&#xff1f;过去两年&#xff0c;大模型&#xff08;LLM&#xff09;火了&#xff0c;但大家很快发现一个问题&#xff1a;大模型只会“说”&#xff0c;不会“做”。它可以回答问题、写代码、写文章&#xff0c;但一旦涉及&#xff1a;连续多步任务…...

25款经典老芯片回顾:从运放、逻辑门到MCU,重温电子工程基石

1. 引言&#xff1a;一场跨越时代的芯片“认亲大会”最近在整理工作室的旧物料箱&#xff0c;翻出了一堆尘封已久的芯片&#xff0c;从布满灰尘的DIP封装到早已停产的早期逻辑门&#xff0c;每一片都像一张泛黄的老照片&#xff0c;记录着电子工业发展的一个脚印。我随手拍了几…...

实用购机指南:屏幕出色、流畅耐用续航拉满的手机

一、前言2026 年上半年&#xff0c;智能手机市场迎来新一轮旗舰迭代&#xff0c;用户购机核心需求已从单一参数比拼&#xff0c;转向流畅不卡顿、性能强劲、屏幕护眼优质、续航持久耐用的全能体验&#xff0c;同时兼顾影像创作与美学设计。为帮消费者精准筛选高适配机型&#x…...

FinalBurn Neo:一场跨越时空的街机游戏考古之旅

FinalBurn Neo&#xff1a;一场跨越时空的街机游戏考古之旅 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo 在数字时代的洪流中&#xff0c;有一群守护者正在用代码为经典街机游戏搭建永生的方舟。Fina…...

Llama3-8B微调显存优化实战:在单张RTX 4090上如何用PEFT+TRL跑通SFT?

Llama3-8B微调显存优化实战&#xff1a;单卡RTX 4090的极限挑战 当Meta发布Llama3系列模型时&#xff0c;8B版本因其在消费级硬件上的潜在可行性迅速成为开发者社区的焦点。但将这样一个拥有80亿参数的模型塞进24GB显存的显卡&#xff0c;就像试图把一头大象装进冰箱——理论上…...

CNN与量化神经网络在高能物理实时触发系统中的应用

1. WOMBAT架构概述&#xff1a;当CNN遇上高能物理在大型强子对撞机&#xff08;LHC&#xff09;的紧凑型μ子螺线管&#xff08;CMS&#xff09;实验中&#xff0c;每秒产生约4000万次质子碰撞事件。传统触发系统需要处理海量数据流&#xff0c;而WOMBAT架构的创新之处在于将卷…...

MoE稀疏激活原理与工程实践:解密大模型2%参数调用真相

1. 项目概述&#xff1a;参数规模与稀疏激活的真相拆解“GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区反复刷屏&#xff0c;常被当作“AI算力爆炸”的标志性论断。但作为从2016年就开始跑LSTM、2018年手写Transformer Enc…...

Unity IL2CPP逆向实战:用frida-il2cpp-bridge穿透三重运行时屏障

1. 这不是“又一个 Frida 教程”&#xff0c;而是 Unity 逆向现场的生存手册 你刚在某款热门 Unity 游戏里发现一个可疑的加密逻辑&#xff0c;想确认它是否调用了 UnityEngine.PlayerPrefs.SetString 存储敏感 token&#xff1b;或者你在调试一款国产工具类 App&#xff0c…...

白帽工程师的四大核心工具链:从资产测绘到修复验证

1. 这不是“黑客速成班”&#xff0c;而是真实白帽工程师的日常工具箱很多人看到“挖漏洞”三个字&#xff0c;第一反应是黑进系统、炫技式提权、深夜敲代码改数据库——这其实是影视作品和自媒体标题党联手塑造的幻觉。真实的网络安全一线工作中&#xff0c;90%以上的漏洞发现…...