day07 项目启动以及git
spring框架
spring 负责整合各种框架,把new对象的部分交给spring去做,对象new不出来,项目就启动不起来,这样可以有效保证所需要的对象都在容器中存在,后续的部分都可以顺利执行
控制反转:业务对象创建依赖资源的控制权反转给容器
依赖注入:容器把业务对象依赖的资源注入到业务对象
容器:IOC容器
业务对象:servlet/action/controller
依赖资源:service
mybatis用于取代dao层
git
用于版本控制,程序员们每天将自己写的代码传入git仓库里,
add将修改过的文件添加到Git的暂存区(staging area),这是准备提交的第一步;
再commit将暂存区的更改提交到本地仓库,这样更改就被保存在本地的版本历史中;
如果有需求也可以push将本地仓库的更改推送到远程仓库,通常是在团队协作时,将个人的更改共享给其他团队成员;
使用pull从远程仓库拉取最新的更改到本地仓库,这通常发生在开始工作前,以确保你的代码库是最新的。
commit到git的安装特别简单,一直点击下一步即可,通常使用bash命令行来运行这样比较快。
常用操控的命令行指令——
git clone http仓库网址 + 输入华为云用户名、密码可以将本地项目和git仓库联系起来
git cat hello.txt 看到文件的内容
git pwd 看到当前所在的目录
git add hello.txt 不用加引号
git status 获取当前你提交的文件
git log 看你是不是有任何的commit
--引号 必须英文的!!!
git commit [hello.txt] -m "add new file hello.txt" 上传到华为云仓库,“-m”不能省略!!!
用 git pull origin master 来更新本地的文件
debug
解决之前提出的下拉表格无法根据某一行的内容来决定是否显示表格的问题~!
具体就是根据每一行(记录)UserNum的计算值判断点击下拉之后是否可以显示表格,如果UserNum>0,就可以显示,如果=0就不显示表格。
因为UserNum也是计算得到的,所以不能和别的列一样直接从对象中获取,想了很多种方法tree-props属性还是v-if都不行,但是解决方法其实很简单,就是下拉列代码内部加一层div嵌套在template内部,再使用v-show,直接判断每一行(记录/对象)所包含的对象数组的长度即可,而并不能根据UserNum来判断
如图圈住的代码换成——
<div v-show="props.row.bankUserList != null&& props.row.bankUserList.length > 0">
附上完整代码——
<template><div><h1>Bank View</h1><el-button @click="find" type="primary">search</el-button><el-button @click="add" type="primary">add</el-button><br /><br /><br /><el-input v-model="inputValue" placeholder="请输入id"></el-input><br /><br /><el-table :data="bankList" style="width: 100%" ><el-table-column type="expand"><template slot-scope="props" ><div v-show="props.row.bankUserList != null&& props.row.bankUserList.length > 0"><el-table :data="props.row.bankUserList" style="width: 100%"><el-table-column label="userName" prop="userName"></el-table-column><el-table-column label="role" prop="role"> </el-table-column><el-table-column label="realName" prop="realName"></el-table-column><el-table-column label="password" prop="password"></el-table-column><el-table-column label="phone" prop="phone"> </el-table-column><el-table-column label="createTime" prop="createTime"></el-table-column><el-table-column label="updateTime" prop="updateTime"></el-table-column></el-table></div></template></el-table-column><el-table-column label="UserNum" width="180"><template slot-scope="props">{{ props.row.bankUserList != null ? props.row.bankUserList.length : null }}</template></el-table-column><el-table-column label="bankId" prop="bankId" width="180"></el-table-column><el-table-column label="bankName" prop="bankName" width="180"></el-table-column><el-table-column label="bankPhone" prop="bankPhone" width="180"></el-table-column><el-table-column label="introduce" prop="introduce" width="300"></el-table-column><el-table-column label="money" prop="money" width="180"></el-table-column><el-table-column label="rate" prop="rate" width="180"> </el-table-column><el-table-column label="repayment" prop="repayment" width="180"></el-table-column><!-- --><el-table-column fixed="right" label="操作" width="100"><template slot-scope="scope"><el-button@click="deleteBank(scope.row.bankId)"type="text"size="small">删除</el-button><el-buttontype="text"size="small"@click="updateBank(scope.row.bankId)">编辑</el-button></template></el-table-column></el-table><!-- 添加的对话框--><el-dialog :title="title" :visible.sync="dialogFormVisible"><el-form :model="form" :rules="rules" ref="bankForm"><el-form-itemlabel="bankName":label-width="formLabelWidth"prop="bankName"><el-input v-model="form.bankName" autocomplete="off"></el-input></el-form-item><el-form-itemlabel="bankPhone":label-width="formLabelWidth"prop="bankPhone"><el-input v-model="form.bankPhone" autocomplete="off"></el-input></el-form-item><el-form-itemlabel="introduce":label-width="formLabelWidth"prop="introduce"><el-input v-model="form.introduce" autocomplete="off"></el-input></el-form-item><el-form-item label="money" :label-width="formLabelWidth" prop="money"><el-input v-model="form.money" autocomplete="off"></el-input></el-form-item><el-form-item label="rate" :label-width="formLabelWidth" prop="rate"><el-input v-model="form.rate" autocomplete="off"></el-input></el-form-item><el-form-itemlabel="repayment":label-width="formLabelWidth"prop="repayment"><el-input v-model="form.repayment" autocomplete="off"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button @click="cancel">取 消</el-button><el-button type="primary" @click="save">保 存</el-button></div></el-dialog></div>
</template><script>
import bankApi from "../api/bank";export default {name: "BankView",created() {this.findAndBankUser();},data() {return {bankList: [],bank: {},inputValue: "",dialogFormVisible: false, // 控制添加的对话框是否可见title: "",formLabelWidth: "100px",form: {bankName: "",bankPhone: "",introduce: "",money: "",rate: "",repayment: "",},rules: {bankName: [{ required: true, message: "请输入银行名称", trigger: "blur" },{min: 2,max: 50,message: "长度在 2 到 50 个字符",trigger: "blur",},],bankPhone: [{ required: true, message: "请输入银行电话", trigger: "blur" },{ min: 11, max: 11, message: "长度为11位", trigger: "blur" },],introduce: [{ required: true, message: "请输入银行介绍", trigger: "blur" },{min: 2,max: 200,message: "长度在 2 到 200 个字符",trigger: "blur",},],money: [{ required: true, message: "请输入银行存款金额", trigger: "blur" },],rate: [{ required: true, message: "请输入银行利率", trigger: "blur" }],repayment: [{ required: true, message: "请输入银行还款期限", trigger: "blur" },],},};},methods: {updateBank(id) {this.title = "编辑银行";this.dialogFormVisible = true;bankApi.findById(id).then((res) => {if (res.data.code == 200) {if (res.data.data == null) {this.infoMessage("数据库错误,请联系管理员");} else {this.form = res.data.data;}} else {this.errorMessage(res.data.message);}});},deleteBank(id) {this.$confirm("确定要删除编号为" + id + "的数据吗?", "提示", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(() => {bankApi.deleteBank(id).then((res) => {if (res.data.code == 200) {this.successMessage("删除了" + res.data.data + "条数据");this.findAndBankUser();} else {this.errorMessage(res.data.message);}});}).catch(() => {this.$message({type: "info",message: "已取消删除",});});},save() {// 验证表单this.$refs.bankForm.validate((validate) => {if (validate) {// 验证通过,可以提交数据if (this.form.bankId == null || this.form.bankId == 0) {bankApi.saveBank(this.form).then((res) => {if (res.data.code == 200) {this.successMessage("添加了" + res.data.data + "条数据");// this.successMessage();this.findAndBankUser();} else {this.errorMessage(res.data.message);}});} else {bankApi.updateBank(this.form).then((res) => {if (res.data.code == 200) {this.successMessage("修改了" + res.data.data + "条数据");this.findAndBankUser();} else {this.errorMessage(res.data.message);}});}this.dialogFormVisible = false;this.$refs.bankForm.resetFields(); //重置表单}});},cancel() {this.dialogFormVisible = false;this.$refs.bankForm.resetFields(); //重置表单},add() {this.title = "添加银行";this.dialogFormVisible = true;this.$refs.bankForm.resetFields(); //重置表单},find() {if (this.inputValue) {// alert(this.inputValue);this.findById();} else {this.findAndBankUser();}},findById() {bankApi.findById(parseInt(this.inputValue, 10)).then((res) => {// alert(parseInt(this.inputValue, 10));if (res.data.code == 200) {this.bank = res.data.data;if (this.bank != null) {this.$set(this, "bankList", []); // 清空原有数据this.bankList.push(this.bank);} else {this.infoMessage("没有找到该银行");}} else {this.errorMessage(res.data.message);}});},findAndBankUser() {bankApi.findAndBankUser().then((res) => {if (res.data.code == 200) {this.bankList = res.data.data;}});},successMessage(message) {this.$message({message: message,type: "success",});},infoMessage(message) {this.$message({message: message,type: "warning",});},errorMessage(message) {this.$message.error(message);},},
};
</script>
相关文章:

day07 项目启动以及git
spring框架 spring 负责整合各种框架,把new对象的部分交给spring去做,对象new不出来,项目就启动不起来,这样可以有效保证所需要的对象都在容器中存在,后续的部分都可以顺利执行控制反转:业务对象创建依赖资…...

学会网络安全:开启广阔职业与责任之旅
在数字化时代,网络安全已成为社会经济发展的重要基石。随着互联网的普及和技术的飞速发展,网络安全威胁日益复杂多变,对国家安全、社会稳定以及个人隐私构成了严峻挑战。因此,掌握网络安全技能不仅意味着拥有了一项高价值的职业技…...
UE5 镜头
只狼镜头 Spring Arm 中 开启 Use Pawn Control Rotation:让镜头跟着鼠标移动BP_Character(Self) 中关闭 Use Controller Rotation Yaw:不要让人物和鼠标移动Character Movement 的 Rotation Setting 中 关闭 Use Controller Desired Rotationÿ…...
SpringBoot如何实现简单的跨域配置
在SpringBoot中实现简单的跨域配置,主要通过全局CORS配置来完成。这通常涉及到实现WebMvcConfigurer接口并覆盖addCorsMappings方法。以下是一个简单的示例,展示了如何在SpringBoot应用中配置CORS策略以允许跨域请求。 首先,需要创建一个配置…...
vue列表进入详情页实现上一篇下一篇功能
概述:需求就是需要可以看列表,然后点击列表的右侧详情看详情,通过详情来实现新增上一份,下一份按钮来实现直接看之后的详情。 网上的解决方法有很多 1.后台获取将全量的id,前台再去直接取下一个id方式。(…...
kalman的python实现
前面的kalman都是matlab的,这里在理解的基础上,尝试使用python实现,力求理解更多的内涵。 需要的包 import numpy as np import matplotlib.pyplot as plt 代码 KF algorith demo by Leo 2020.01.06 ZJG CAMPUS,ZJU import numpy as np…...

查找算法:线性查找,golang实现
目录 前言 线性查找 代码示例 1. 算法包 2. 线性查找代码 3. 模拟程序 4. 运行程序 循环次数 假如目标值正好在数组中的第一位 假如目标值正好在数组中的第五位 假如目标值正好在数组中的最后一位 假如目标值不在数组中 线性查找的思想 1. 顺序遍历 2. 比较 3.…...

【图像识别】十大数据集合集!
本文将为您介绍10个经典、热门的数据集,希望对您在选择适合的数据集时有所帮助。 1 DanishFungi2020 发布方: Google 发布时间: 2021 简介: 补充材料:丹麦真菌 2020 - 不仅仅是另一个图像识别数据集为了支持细粒度植…...

C++ | Leetcode C++题解之第312题戳气球
题目: 题解: class Solution { public:int maxCoins(vector<int>& nums) {int n nums.size();vector<vector<int>> rec(n 2, vector<int>(n 2));vector<int> val(n 2);val[0] val[n 1] 1;for (int i 1; i &l…...

SSM学习11:springboot基础
教学视频 黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关 springboot基础 搭建项目 修改配置文件 修改application.yml(后缀名不对,可以改成这个),配置数据库 spr…...

【前端 18】安装Node.js
Node.js 安装指南 在今天的博客中,我们将一起探讨如何在您的计算机上安装Node.js。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许你在服务器端运行 JavaScript 代码。无论您是前端开发者希望探索全栈开发,还是后端开发者寻…...

C#/Winform入门、进阶、强化、扩展、知识体系完善等知识点学习、性能优化、源码分析专栏分享
场景 作为一名C#的Winform开发者,势必经历过从入门到自学、从基础到进阶、从学习到强化的过程。 当经历过几年企业级开发的磨炼,再回头看之前的开发过程、成长阶段发现确实是走了好多的弯路。 作为一名终身学习的信奉者,秉承Java体系需持续…...

springboot的表现层/控制层controller开发
第一步:新建文件和注入业务层对象 需要使用的注解: 第一个声明是restful风格开发 第二个是需要设置网页访问路径 RestController RequestMapping("/fuels")//http://localhost/fuels注入服务层对象: Autowiredprivate FuelServ…...
前端使用html2canvas在页面截图并导出,以及截图中含有图片时的跨域问题解决
1.引入html2canvas npm 安装或cdn引入 npm install html2canvas <script src"https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script> 2.使用 html2canvas // 假设你有一个 id 为 "capture" 的元素 h…...
道可云元宇宙每日资讯|第十二届互联网安全大会在北京开幕
道可云元宇宙每日简报(2024年8月2日)讯,今日元宇宙新鲜事有: 第十二届互联网安全大会在北京开幕 7月31日,第十二届互联网安全大会(ISC.AI 2024)在北京国家会议中心盛大开幕。 本届大会以“打造…...

前端面试基础题(微信公众号:前端面试成长之路)
BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BFC、IFC、GFC和FFC Whats FC? 一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域,并…...

https执行过程,特点,作用
还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…...

【优秀python案例】基于Python的豆瓣电影TOP250爬虫与可视化设计与实现
摘要:伴随着当代社会物质水平的不断提高,人们越来越注重精神享受,看电影成为人们日常生活中重要的组成成分。本文将针对豆瓣上热门电影评论进行爬取,应用可视化分析更为形象地了解该电影的动态。该系统可以使得人们实时了解到有关…...

如何设计一个测试用例
前言👀~ 上一章我们介绍了什么是软件测试以及软件测试的一些基础概念,今天来聊聊如何设计一个测试用例,涉及到黑盒测试的测试方法 基于需求进行测试用例的设计 基于需求的具体设计方法 等价类 边界值 判定表法 正交表法 场景设计法 …...

黄金和原油市场波动背后的经济信号
黄金市场的波动与经济数据影响 周四,黄金市场经历了一天内的剧烈波动,从早盘的高点到纽约时段的急剧下跌。现货黄金价格最初上涨至2462.29美元/盎司,但随后迅速跌至最低的2434.72美元/盎司。最终,黄金收盘价报2445.84美元/盎司&am…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...