云监控(华为) | 实训学习day2(10)
spring boot基于框架的实现
简单应用 - 用户数据显示
-
开发步骤
第一步:文件-----》新建---à项目

第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容.

第三步,选择maven后,下一步

第4步 :出现对话框中填写项目名称

第5步:填写后完成
第6步:把pom.xml打开

第7步:填写模块的软件版本
附:查版本

到远程仓库,进入仓库查询mysql8.0的版本

最终依赖包文件如下

把包输入后,使用maven的重新加载项目

除了上述的修改,还有一个lombok插件(java bean)

安装后“确定”即可
使用java开发注重项目架构(文件夹)
- Mvc开发模式
- Java开发必须有一个顶层的软件包(com)
- Model数据
- 数据库操作 dao-àmybatis实现java类到数据库表之间的关系-pojo
业务: (转帐)包含多数据库操作 service
控制:逻辑实现 controller
结构是通过在java中右键,新建---“软件包”实现


Java解决问题的思路

- 先有表,探讨表的结构
- 有java bean
- Pojo层数据库操作
- Service层逻辑(一般service和pojo代码相似)
- Controller封装逻辑
- 前端界面
结构理顺,用户登录和注册
第一步:有用户表
进入到mysql数据库

创数据库,打开数据库,创建表,插入数据。

第二步:有java bean

注意类名尽量与表名一致。
第三步:有dao层方法(pojo层的方法)
注意:springboot把pojo都变成接口,创建时选择interface
Interface不能写具体代码,代码被mybatis实现

在MyUser的java bean加入@Data的lombok注解

接口作用是不能被实现
代码如下

代码mybatis实现.,定义成interface
第四步:有service层,调用mapper层的类的方法,这一层有事务.
注意:@Service注解,@Autowired注入UserMapper
第五步:有controller层,在这层中,调用service
Controller层新建UserController类 的代码

第六步:前端页面 :
springboot前端要求必须有一个文件夹。文件夹在resources文件夹下,文件夹名字必须是templates

在templates文件夹下创建前端HTML文件

文件名与Controller中返回的字符串名称一致。

这里没一致,改一下

HTML代码后面完善

根据java流程架构图

Spring boot框架
-
配置文件
三部分内容
数据库连接
Mybatis 配置sql语句的位置
前端模板
名称只能是application.yml
Yml文件是键和值组成,形成数据库参数和值的对应关系

文件内容
数据库的驱动
Mysql5.X 驱动 com.mysql.jdbc.Driver
Mysql8.0驱动 com.mysql.cj.jdbc.Driver
Mysql5.X 地址
jdbc:mysql://localhost:3306/mygaussdb?characterEncoding=utf8&useSSL=false
mysql8.0地址
jdbc:mysql://localhost:3306/mygaussdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
数据库密码是123456,写password: ‘123456’
-
myBatis的mapper文件xml

建立的文件名与pojo接口文件名一致
Xml文件注意的地方:

根据查询结果,修改pojo接口文件

对应Service结果的改变,UserService代码

前端的网页文件改如下:

UserController文件改如下

运行程序
写一个主程序,主程序只能在顶层的包里写,这里是com包

提示后回车
SpringBoot的主程序

报错

把右边maven项打开
把依赖项展开,是否有冲突项

去一个
把pom.xml文件改一下

排除后更新

更新后,只有一个

运行成功显示

显示数据在浏览器器中输入

基本结构成功。
第一种: 从架构理解
第二种从开发上理解
目标:把表数据变成网页显示
两条线:
后端线:表------àController控制层实现
- 先有表,探讨表的结构
- 有java bean,,类结构与表一致
(3)Pojo层数据库操作,这是接口文件,实现由mybatis配合xml增删改查实现。
- Service层逻辑(一般service和pojo代码相似),这是java类
- Controller封装逻辑,返回前端页面和数据
前端线
- 页面使用thymeleaf模板
- 接收前端数据${前端变量名 } ,th:each做循环
- 显示的是java bean当中的每一个属性值

详细代码
package com.bean;import lombok.Data;@Data
public class MyUser {private int id;private String username;private String password;
}
package com.controller;import com.bean.MyUser;
import com.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.ArrayList;
import java.util.List;@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userservice;@RequestMapping("/list")public String ListUser(Model model) {List<MyUser> users = userservice.selectUser();System.out.println("users");model.addAttribute("myusers", users);return "myuser";}
}
package com.pojo;import com.bean.MyUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;@Mapper
public interface UserMapper {public List<MyUser> selectUser();public void addUser(MyUser user);
}
package com.service;import com.bean.MyUser;
import com.pojo.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper usermapper;public List<MyUser> selectUser(){return usermapper.selectUser();}
}
package com;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Mymain {public static void main(String[] args) {SpringApplication.run(Mymain.class);}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pojo.UserMapper"><select id="selectUser" resultType="com.bean.MyUser">select * from myuser</select><insert id="addUser" parameterType="com.bean.MyUser">insert into myuser values (#{id},#{username},#{password})</insert>
</mapper>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>显示用户</title>
</head>
<body>
<table><tr><td>id</td><td>用户名</td><td>用户密码</td></tr><tr th:each="item:${myusers}"><td th:text="${item.id}"></td><td th:text="${item.username}"></td><td th:text="${item.password}"></td></tr>
</table></body>
</html>
spring:thymeleaf:prefix: classpath:/templates/suffix: .htmldatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/myguassdb?characterEncoding=utf8&useSSL=false&serverTimezone=UTCusername: rootpassword: '123456'mybatis:mapper-locations: classpath:mybatis/*.xml
相关文章:
云监控(华为) | 实训学习day2(10)
spring boot基于框架的实现 简单应用 - 用户数据显示 开发步骤 第一步:文件-----》新建---项目 第二步:弹出的对话框中,左侧选择maven,右侧不选任何内容. 第三步,选择maven后,下一步 第4步 :出现对话框中填写项目名称 第5步&…...
数据结构第35节 性能优化 算法的选择
算法的选择对于优化程序性能至关重要。不同的算法在时间复杂度、空间复杂度以及适用场景上有着明显的差异。下面我将结合具体的代码示例,来讲解几种常见的算法选择及其优化方法。 示例 1: 排序算法 场景描述: 假设我们需要对一个整数数组进行排序。 算法选择: …...
每天一个数据分析题(四百三十六)- 正态分布
X为服从正态分布的随机变量N(2, 9), 如果P(X>c)P(X<c), 则c的值为() A. 3 B. 2 C. 9 D. 2/3 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL&…...
跟我学C++中级篇——虚函数的性能
一、虚函数性能 一般来说,面向对象的设计中,继承和多态是其中两个非常重要的特征。从使用的过程来看,一般应用到继承的,使用多态的可能性就非常大。而多态的实现有很多种, 但开发者通常认为的多态(动多态&…...
trl - 微调、对齐大模型的全栈工具
文章目录 一、关于 TRL亮点 二、安装1、Python包2、从源码安装3、存储库 三、命令行界面(CLI)四、如何使用1、SFTTrainer2、RewardTrainer3、PPOTrainer4、DPOTrainer 五、其它开发 & 贡献参考文献最近策略优化 PPO直接偏好优化 DPO 一、关于 TRL T…...
GuLi商城-商品服务-API-品牌管理-品牌分类关联与级联更新
先配置mybatis分页: 品牌管理增加模糊查询: 品牌管理关联分类: 一个品牌可以有多个分类 一个分类也可以有多个品牌 多对多的关系,用中间表 涉及的类: 方法都比较简单,就不贴代码了...
【linux】服务器ubuntu安装cuda11.0、cuDNN教程,简单易懂,包教包会
【linux】服务器ubuntu安装cuda11.0、cuDNN教程,简单易懂,包教包会 【创作不易,求点赞关注收藏】 文章目录 【linux】服务器ubuntu安装cuda11.0、cuDNN教程,简单易懂,包教包会一、版本情况介绍二、安装cuda1、到官网…...
在 Apifox 中如何高效批量添加接口请求 Body 参数?
在使用 Apifox 进行 API 设计时,你可能会遇到需要添加大量请求参数的情况。想象一下,如果一个接口需要几十甚至上百个参数,若要在接口的「修改文档」里一个个手动添加这些参数,那未免也太麻烦了,耗时且易出错。这时候&…...
专业PDF编辑工具:Acrobat Pro DC 2024.002.20933绿色版,提升你的工作效率!
软件介绍 Adobe Acrobat Pro DC 2024绿色便携版是一款功能强大的PDF编辑和转换软件,由Adobe公司推出。它是Acrobat XI系列的后续产品,提供了全新的用户界面和增强功能。用户可以借助这款软件将纸质文件转换为可编辑的电子文件,便于传输、签署…...
车载音视频App框架设计
简介 统一播放器提供媒体播放一致性的交互和视觉体验,减少各个媒体应用和场景独自开发的重复工作量,实现媒体播放链路的一致性,减少碎片化的Bug。本文面向应用开发者介绍如何快速接入媒体播放器。 主要功能: 新设计的统一播放U…...
StarRocks on AWS Graviton3,实现 50% 以上性价比提升
在数据时代,企业拥有前所未有的大量数据资产,但如何从海量数据中发掘价值成为挑战。数据分析凭借强大的分析能力,可从不同维度挖掘数据中蕴含的见解和规律,为企业战略决策提供依据。数据分析在营销、风险管控、产品优化等领域发挥…...
VUE中setup()
在Vue中,setup() 函数是Vue 3.0及更高版本引入的一个重要特性,它是Composition API的入口点。setup() 函数用于初始化组件的状态和逻辑,包括定义响应式数据、方法和生命周期钩子。以下是关于setup() 函数的详细解释: 1. 作用与特…...
【单元测试】SpringBoot
【单元测试】SpringBoot 1. 为什么单元测试很重要?‼️ 从前,有一个名叫小明的程序员,他非常聪明,但有一个致命的缺点:懒惰。小明的代码写得又快又好,但他总觉得单元测试是一件麻烦事,觉得代码…...
分布式搜索引擎ES-elasticsearch入门
1.分布式搜索引擎:luceneVS Solr VS Elasticsearch 什么是分布式搜索引擎 搜索引擎:数据源:数据库或者爬虫资源 分布式存储与搜索:多个节点组成的服务,提高扩展性(扩展成集群) 使用搜索引擎为搜索提供服务。可以从海量…...
TCP三次握手与四次挥手详解
1.什么是TCP TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,属于互联网协议族(TCP/IP)的一部分。TCP 提供可靠的、顺序的、无差错的数据传输服务&…...
【Windows】操作系统之任务管理器(第一篇)
一、操作系统简介 Windows操作系统是由微软公司(Microsoft)开发的一款图形操作系统,它以其强大的功能和广泛的用户基础,成为了目前世界上用户使用最多、兼容性最强的操作系统之一。以下是关于Windows操作系统的详细介绍ÿ…...
图同构的必要条件
来源:离散数学...
Django获取request请求中的参数
支持 post put json_str request.body # 属性获取最原始的请求体数据 json_dict json.loads(json_str)# 将原始数据转成字典格式 json_dict.get("key", "默认值") # 获取数据参考 https://blog.csdn.net/user_san/article/details/109654028...
kotlin compose 实现应用内多语言切换(不重新打开App)
1. 示例图 2.具体实现 如何实现上述示例,且不需要重新打开App ①自定义 MainApplication 实现 Application ,定义两个变量: class MainApplication : Application() { object GlobalDpData { var language: String = "" var defaultLanguage: Strin…...
记录些MySQL题集(16)
MySQL 存储过程与触发器 一、初识MySQL的存储过程 Stored Procedure存储过程是数据库系统中一个十分重要的功能,使用存储过程可以大幅度缩短大SQL的响应时间,同时也可以提高数据库编程的灵活性。 存储过程是一组为了完成特定功能的SQL语句集合&#x…...
Nitrox模组:如何将Subnautica的单人深海恐惧变为团队协作冒险
Nitrox模组:如何将Subnautica的单人深海恐惧变为团队协作冒险 【免费下载链接】Nitrox An open-source, multiplayer modification for the game Subnautica. 项目地址: https://gitcode.com/gh_mirrors/ni/Nitrox 当你第一次潜入4546B行星的海洋时ÿ…...
4个步骤掌握FederatedScope:从入门到实践的联邦学习全流程指南
4个步骤掌握FederatedScope:从入门到实践的联邦学习全流程指南 【免费下载链接】FederatedScope An easy-to-use federated learning platform 项目地址: https://gitcode.com/gh_mirrors/fe/FederatedScope 联邦学习作为隐私计算领域的核心技术,…...
从外包到阿里P8:我的“野路子”晋升攻略
一、起点:外包测试员的困境与觉醒初入职场时,我是一名普通的外包功能测试员,每日重复着“点点点”的基础工作。外包身份的局限性逐渐显现:接触不到核心业务逻辑,缺乏技术成长空间,职业路径模糊。一次线上重…...
LizzieYzy围棋AI分析平台实战指南:从多引擎集成到专业级棋局解析
LizzieYzy围棋AI分析平台实战指南:从多引擎集成到专业级棋局解析 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy LizzieYzy是一款基于Java开发的围棋AI图形界面工具,作为Liz…...
MiroFish群体智能引擎快速部署指南:新手友好的多场景实施方案
MiroFish群体智能引擎快速部署指南:新手友好的多场景实施方案 【免费下载链接】MiroFish A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎,预测万物 项目地址: https://gitcode.com/GitHub_Trending/…...
禾赛年报图解:营收30亿,经调整净利5.5亿 成激光雷达行业首家全年GAAP盈利企业
雷递网 雷建平 3月24日禾赛科技(NASDAQ:HSAI;HKEX:2525)今日公布了2025年第四季度以及全年未经审计的财务数据。财报显示,禾赛2025年营收为30.28亿元,较上年同期的20.77亿元增长45.8%。禾赛2025年运营利润为1.68亿元&a…...
手把手教你用BurpSuite抓取火狐浏览器数据包(含代理设置完整流程)
从零掌握BurpSuite抓包:火狐浏览器配置与实战技巧 在Web安全测试领域,BurpSuite无疑是渗透测试工程师和开发者的瑞士军刀。不同于简单的网络调试工具,它提供了从基础抓包到高级漏洞探测的全套解决方案。本文将带你从环境搭建到实战抓包&#…...
基于ChatTTS的自定义PT文件文字转语音实战指南
最近在做一个需要语音播报的项目,之前用了一些现成的TTS服务,效果是还行,但总感觉声音不够“对味儿”,要么太机械,要么风格不是我想要的。后来发现了ChatTTS这个开源项目,它支持用自己的数据训练模型&#…...
计算机毕业设计springboot月知晓彩妆销售系统 SpringBoot美妆臻选在线商城系统 基于SpringBoot的“妆点人生“化妆品零售平台
计算机毕业设计springboot月知晓彩妆销售系统bq58y9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在颜值经济蓬勃发展的当下,化妆品电商市场持续高速增长。传统线下…...
Legado内置Web服务深度剖析:轻量级架构与跨设备阅读体验升级
Legado内置Web服务深度剖析:轻量级架构与跨设备阅读体验升级 【免费下载链接】legado Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便…...


