云监控(华为) | 实训学习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…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...


