停车场收费系统
1.系统的开发工具
1.1 AppServe集成应用
Mysql:MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
Php:PHP是一种嵌入式脚本语言,由于 PHP 简单、易用、跨平台、开源等特点,使其成为主流的网站开发语言,使用 PHP 开发的网站遍及各个行业。在具体开始学习 PHP 之前,本章先简单介绍一下 PHP 语言和 PHP7 的一些新特性,PHP 的发展趋势以及学好 PHP 语言的方法等,让读者对 PHP 语言有一个整体的了解,然后再慢慢地学习具体内容,最后达到完全掌握 PHP 语言的目的。
1.2使用VScode编写html代码以及php的结合
在浏览器中使用“http://localhost:90”进入数据库进行数据操作Visual Studio Code(简称“VS Code” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器,可在桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他语言(例如C++,C#,Java,Python,PHP,Go)和运行时(例如.NET和Unity)扩展的生态系统。
2.系统分析
2.1 需求分析
本系统包括两类用户:管理员用户和普通用户。管理员可以使用系统所有功能,普通用户只能查询车辆历史记录、用户信息(只限于个人信息)、查询计费标准、查询当前在场信息、查询出入场信息、当前可用车位信息。具体模块划分为如下模块:系统管理模块、信息维护模块、信息查询模块、车场管理模块。
①系统管理模块
管理员注册 功能描述:管理员可以在这里添加新的管理员。
用户注册 功能描述:在这里可添加新的用户(普通用户)。
②信息维护模块
管理员在这里可以修改用户。这里会以表的形式显示所有的用户信息。管理员点击相应的一行用户信息,这行信息会自动填充到表下的面板里,用户可以在面板里修改用户信息,面板下面有两个按钮,修改、删除,点击相应的按钮可以实现相应的功能。
③信息查询模块
登录的管理员可以根据车牌号或用户名查询用户信息,登录的用户只可以查到自己的信息(进出场记录、收费记录)
④ 车场管理模块(应该分为车辆入场和车辆出场两部分)
车辆入场 功能描述:车辆进入停车场时进行登记,记录入场时间并指定车位。
车辆出场 功能描述:车辆开出停车场时进行登记,记录出场的时间并进行自动收费。根据车辆进场时间,出场时间及收费标准自动计算车主应该缴纳的费用。如果停车时间包含不足一小时的时间,超过30分钟按一小时计算,不足三十分钟不计算。
⑤当前在场信息
用户可以在这里查询到当前在场的车辆信息,包括车位号,开始停车时间。
⑥当前可用车位信息
在这里用户可以查询当前可用的车位的信息,包括车位号
⑦计费标准信息
管理员可以在这里根据市场价格变动适当调节停车价格
4.系统设计
4.1 界面设计
登陆与注册界面如图4.1所示
图4.1登录与注册界面
管理员信息界面(可进行增删查改)如图4.2
图4.2管理员信息界面
管理员信息增加界面如图4.3所示
图4.3 管理员信息增加
用户信息界面(可进行增删查改)如图4.4所示
图4.4用户信息
用户信息增加界面如图4.5所示
图4.5 用户信息增加
停车记录界面如图4.6所示
图4.6 停车记录
车费缴纳界面如图4.7所示
图4.7 车费缴纳
费用价格定价界面如图4.8所示
图4.8 费用价格定价
车位状态管理界面如图4.9所示
图4.9 车位状态管理
4.2 内容设计
①登录与注册 实现管理员和用户的注册与登录,将得到的数据添入数据库并保存下来
②管理员信息界面 实现管理员的添加、删除、修改以及查询
③用户信息界面 实现用户的添加、删除、查询以及修改
④停车记录管理 可对停入停车场的车辆进行记录,有车主、电话、车牌号、停车时间,车辆离开后会有时间记录,显示总时长和应缴金额。管理员对停车记录也可进行增删查改。
⑤车辆管理界面 对停入车辆的车主、电话、车牌号、停留时间、离开时间以及是否缴费都会有记录,缴费状态会随是否缴费而进行变化。车费修改界面是由管理员对当下经济变动进行合理的修改。
⑥车位状态管理界面 此界面可随停车记录的变动而变动,在停车记录里有车辆停入并记录下来时,车位状态管理会随之减少相应的车位剩余数,反之增加相应的车位剩余数。
4.3 技术难点
①数据库的建立,有些字段的属性使用场景不同,需要适当改变
②前端HTML的美化需要用到JavaScript,不是很熟练
③ Php未学,现下学,很多语法使用不当,对数据的显示很多时候都会出错
④停车场计费管理中,需要对车辆停入时间和驶出时间进行计算,最后通过单价计算出所需缴纳费用,所以TIMESTAMPIFF的运用也是个难点。
⑤对于车辆停入后来驶出,再次停入的记录,避免车牌号重复的记录是个难点
4.4 问题解决
①场景不同所创建的数据表也有所变化
管理员数据表:SELECT adid
, adname
, adpsw
FROM administrator
WHERE 1;用户数据表:SELECT usid
, usname
, uslpn
, ustel
FROM users
WHERE 1;停车记录表:SELECT prid
, prname
, prtel
, prlpn
, prstart
, prend
, prtimes
, prmoney
, prpay
FROM prpayment
WHERE 1;计费:SELECT pmoney
FROM money
WHERE 1等。
②网上查找JavaScript的相关知识,结合课本修饰美化页面
<script src="JQuery.js"> </script><script type="text/javascript">$(function () {$("ul.accordion li span").on('click', function () {$(this).parent().siblings().removeClass('selected').find('div').hide();$(this).parent().addClass('selected');$(this).next().slideDown(500);});});</script>
③Php进行数据库连接,网络上查找
<?phpsession_start();//开启缓存if(isset($_SESSION['yes'])){echo '<p align="center">'.$_SESSION['yes'].'</p>';unset($_SESSION['yes']);}$link=mysqli_connect('localhost','root','12345678','park');if(!$link){exit('数据库连接失败!');}
④TIMESTAMPIFF函数的运用
l e a v e 2 = m y s q l i q u e r y ( leave2=mysqli_query( leave2=mysqliquery(link,“update prpayment set prtimes =ceil((select * from(select timestampdiff(minute,prstart,prend) from prpayment where prid= r o w [ 0 ] ) a s p r ) / 60 ) w h e r e p r i d = row[0])as pr )/60) where prid= row[0])aspr)/60)whereprid=row[0]”);//计算时间
⑤判断停车场内的车辆是否驶出,可否可插入
l e a v e 1 = m y s q l i q u e r y ( leave1=mysqli_query( leave1=mysqliquery(link,“update prpayment set prend=(now()) where prid=$row[0]”);//离开时间
l e a v e 2 = m y s q l i q u e r y ( leave2=mysqli_query( leave2=mysqliquery(link,“update prpayment set prtimes =ceil((select * from(select timestampdiff(minute,prstart,prend) from prpayment where prid= r o w [ 0 ] ) a s p r ) / 60 ) w h e r e p r i d = row[0])as pr )/60) where prid= row[0])aspr)/60)whereprid=row[0]”);//计算时间
l e a v e 3 = m y s q l i q u e r y ( leave3=mysqli_query( leave3=mysqliquery(link,“update prpayment set prmoney=prtimes* m 1 [ 0 ] w h e r e p r i d = m1[0] where prid= m1[0]whereprid=row[0]”);//计算费用
5.系统实施
5.1 数据库连接
<?php$link=mysqli_connect('localhost','root','12345678','park');if(!$link){exit('数据库连接失败!');}else{echo "数据库连接成功!";
}
5.2信息注册
<?php$link=mysqli_connect('localhost','root','12345678','park');if(!$link){exit('数据库连接失败!');}else{echo "数据库连接成功!";}mysqli_set_charset($link,"utf8");$aname=$_POST['adname'];$apsw=$_POST['adpsw'];if(isset($_POST['login'])){//注册$result1=mysqli_query($link,"select adname from administrator where adname='$aname'");if(mysqli_num_rows($result1)==true){echo '<script>alert("用户已存在,请重新注册!");location.href="denglu.html";</script>';}$result=mysqli_query($link,"insert into administrator(adname,adpsw) values ('$aname','$apsw')");if($result){ echo '<script>alert("注册成功!");// location.href="Ad.hph";</script>';header('location:Ad.php');}else{ echo '<script>alert("注册失败,请再次注册!");location.href="denglu.html";</script>';}}if(isset($_POST['register']))//登录{$result1=mysqli_query($link,"select adname,adpsw from administrator where adname='$aname' and adpsw='$apsw' ");if(mysqli_num_rows($result1)==true){echo '<script>alert("登录成功!");location.href="Ad.php";</script>';}elseecho '<script>alert("登录失败,用户名或密码错误!");location.href="denglu.html";</script>';}mysqli_close($link);?>
5.3 信息添加
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>管理员信息新增</title><style>#sub{margin-left:48px;margin-right:50px;}#sub1{margin-left:10px;}</style></head><body><h1 align="center">新增管理员信息记录</h1><form action="" method="post" name="inf"><p align="center">名称:<input type="text" name="an"/></p><p align="center">密码:<input type="text" name="ap"/></p><p align="center"><input type="submit" name="insub" value="提交" id="sub"><input type="submit" name="insub1" value="取消" id="sub1"></p></form><?phpsession_start();$link=mysqli_connect('localhost','root','12345678','park');if(!$link){exit('数据库连接失败!');}if(!empty($_POST["insub"])){$an=$_POST['an'];$ap=$_POST['ap'];mysqli_query($link,"insert administrator (adname,adpsw) values ('$an','$ap')");$_SESSION['yes']='添加成功!';header('location:Ad.php');}if(!empty($_POST["insub1"])){header('location:Ad.php');}?></body>
</html>
5.4 信息修改
<form action="" method="post" name="pr"><p align="center"><input type="text" name="sel"/> <input type="submit" value="搜索" name="selsub"/><input type="button" value="新增" name="inbut" onclick="location.href='prinsert.php'"/></p><table align="center" border="1px" cellspacing="0px" width="900px" bordercolor="black"><tr align="center"><th>编号</th><th>车主</th><th>电话</th><th>车牌号</th><th>停车时间</th><th>离开时间</th><th>总时长</th><th>费用<th>操作</th></tr><?phpsession_start();//开启缓存$link=mysqli_connect('localhost','root','12345678','park');$m=mysqli_query($link,"select pmoney from money limit 1 ");$m1=mysqli_fetch_array($m);//价钱if(!$link){exit('数据库连接失败!');}if(empty($_POST["selsub"])){$res=mysqli_query($link,"select * from prpayment order by prid asc ");}else{$sel=$_POST["sel"];$res=mysqli_query($link,"select * from prpayment where prlpn like '%$sel%' or prname like '%$sel%'");}while($row=mysqli_fetch_array($res)){echo '<tr align="center">';echo "<td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$row[4]</td><td>$row[5]</td><td>$row[6]</td><td>$row[7]</td><td><input type='submit' name='upleave$row[0]' value='离开'/><input type='submit' name='upadb$row[0]' value='修改'/><input type='submit' name='deladb$row[0]' value='删除'/></td>";echo '</tr>';if(!empty($_POST["upleave$row[0]"]))//离开{// $m= $_SESSION['money'];$leave1=mysqli_query($link,"update prpayment set prend=(now()) where prid=$row[0]");//离开时间$leave2=mysqli_query($link,"update prpayment set prtimes =ceil((select * from(select timestampdiff(minute,prstart,prend) from prpayment where prid=$row[0])as pr )/60) where prid=$row[0]");//计算时间$leave3=mysqli_query($link,"update prpayment set prmoney=prtimes*$m1[0] where prid=$row[0]");//计算费用mysqli_query($link,"update pstatus set rpspace=(select rpspace from (select rpspace from pstatus) as p)+1");echo'"<script> location.href="mpay.php";</script>"';}if(!empty($_POST["upadb$row[0]"])){//修改echo '<tr align="center">';echo "<td>$row[0]</td><td><input type='text' name='uppn' value='$row[1]'/></td><td><input type='text' name='uppt' value='$row[2]'/></td><td><input type='text' name='uppl' value='$row[3]'/></td><td><input type='text' name='upps' value='$row[4]'/></td><td><input type='text' name='uppe' value='$row[5]'/></td><td><input type='text' name='upall' value='$row[6]'/></td><td><input type='submit' name='upadbs$row[0]' value='确认'/><input type='submit' name='upadbc$row[0]' value='取消'/></td>";echo '</tr>';}if(!empty($_POST["upadbs$row[0]"])){//确认修改$uppn=$_POST['uppn'];$uppt=$_POST['uppt'];$uppl=$_POST['uppl'];$upps=$_POST['upps'];$uppe=$_POST['uppe'];$upall=$_POST['upall'];mysqli_query($link,"update prpayment set prname='$uppn',prtel='$uppt',prlpn='$uppl',prstart='$upps',prend='$uppe',prtimes='$upall'where prid=$row[0]");echo'"<script> location.href="precord.php";</script>"';//修改信息后更新数据// header("location:Ad.php");}if(!empty($_POST["upadbc$row[0]"])){//取消修改header('location:#');}if(!empty($_POST["deladb$row[0]"])){//删除// $_SESSION['del_if']=$row[0];// echo "$row[0]";echo '<script>if(confirm("是否删除?")==true){location.href="precord.php";}</script>';mysqli_query($link,"delete from prpayment where prid=$row[0]");header('location:precord.php');}}?></table></form></div></div> </div></div></body>
</html>
5.5 信息删除
if(empty($_POST["selsub"])){$res=mysqli_query($link,"select * from users order by usid asc ");}else{$sel=$_POST["sel"];$res=mysqli_query($link,"select * from users where usid like '%$sel%' or usname like '%$sel%' or uslpn like '%$sel%'or ustel like '%$sel%'");}while($row=mysqli_fetch_array($res)){echo '<tr align="center">';echo "<td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td><input type='submit' name='upadb$row[0]' value='修改'/><input type='submit' name='deladb$row[0]' value='删除'/></td>";echo '</tr>';if(!empty($_POST["upadb$row[0]"])){//修改echo '<tr align="center">';echo "<td>$row[0]</td><td><input type='text' name='upun' value='$row[1]'/></td><td><input type='text' name='upul' value='$row[2]'/></td><td><input type='text' name='uput' value='$row[3]'/></td><td><input type='submit' name='upadbs$row[0]' value='确认'/><input type='submit' name='upadbc$row[0]' value='取消'/></td>";echo '</tr>';}
5.6信息查询
<form action="" method="post" name="ad"><p align="center"><input type="text" name="sel"/> <input type="submit" value="搜索" name="selsub"/><input type="button" value="新增" name="inbut" onclick="location.href='Adinsert.php'"/></p><table align="center" border="1px" cellspacing="0px" width="800px" bordercolor="black"><tr align="center"><th>编号</th><th>管理员名称</th><th>密码</th><th>操作</th></tr>if(empty($_POST["selsub"])){$res=mysqli_query($link,"select * from administrator order by adid asc ");}else{$sel=$_POST["sel"];$res=mysqli_query($link,"select * from administrator where adid like '%$sel%' or adname like '%$sel%' or adpsw like '%$sel%'");}
6.系统调试
6.1 管理员登录与注册
管理员登录与注册如图6.1
图6.1 管理员登录与注册
6.2 用户登录与注册
用户登录与注册如图6.2
图6.2 用户登录与注册
6.3 停车记录管理及停车缴费
停车记录管理及停车缴费如图6.3
图6.3 停车记录管理及收费
6.4 管理员修改停车价格
管理员修改停车价格如图6.4
图6.4 管理员修改停车价格
相关文章:

停车场收费系统
1.系统的开发工具 1.1 AppServe集成应用 Mysql:MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Mi…...

nodejs+vue+elementui学生毕业生离校系统
学生毕业离校系统的开发过程中。该学生毕业离校系统包括管理员、学生和教师。其主要功能包括管理员:首页、个人中心、学生管理、教师管理、离校信息管理、费用结算管理、论文审核管理、管理员管理、留言板管理、系统管理等,前台首页;首页、离…...

儿童用灯哪个品牌好?推荐专业的儿童护眼台灯
一款好的儿童台灯,主要是从5个方面决定,照度及均匀度,蓝光,色温,显指,频闪 ① 照度及均匀度最高是国AA级,其次就是国A级 ② 蓝光一定要选择RG0无危险级,蓝光能量最强,…...

探究Android插件化开发的新思路——Shadow插件化框架
Shadow插件化框架是什么? Shadow是一种Android App的插件化框架,它利用类似于ClassLoader的机制来实现应用程序中的模块化,并让这些模块可以在运行时灵活地进行加载和卸载。Shadow框架主张将一个大型的Android App拆分成多个小模块ÿ…...
SimpleDateFormat和DateTimeFormatter的区别及使用详解
目录 1.简介2.区别3.SimpleDateFormat3.1 字符串转日期3.2 日期转字符串 4.DateTimeFormatter4.1 字符串转日期4.2 日期转字符串 扩展 1.简介 DateTimeFormatter 和 SimpleDateFormat 都是用于格式化日期和时间的类,但是它们有一些区别。 SimpleDateFormat 是 Jav…...

边缘人工智能——nanodet模型实践指引,从标注数据集到实现部署文件
内容概述 首先获得一个合适的nanodet模型版本,配置nanodet适用的环境,然后对网上公开的生数据集进行重新标注,配置nanodet并进行训练,.pth到.onnx的模型转化及简化,编写推理文件。 文章着重于实践方向指引,…...
SASS的用法指南
一、什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。 本文总结了SASS的主要用法。我的目标是,有了这篇文章,日常的一般使用就不需要去…...

MCSM面板一键搭建我的世界服务器-外网远程联机【内网穿透】
文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 转载自远程穿透文章&…...

( 数组和矩阵) 565. 数组嵌套 ——【Leetcode每日一题】
❓565. 数组嵌套 难度:中等 索引从 0 开始长度为N的数组 A,包含 0 到 N - 1 的所有整数。找到最大的集合 S并返回其大小,其中 S[i] {A[i], A[A[i]], A[A[A[i]]], ... } 且遵守以下的规则。 假设选择索引为 i 的元素 A[i] 为 S 的第一个元…...

linux内核网络子系统初探---概述
linux内核网络子系统初探—概述 一、网络模型 简单介绍 学习网络时,必定能在各种教材资料里见到以下三种网络模型: 三种模型间的差异: OSI七层模型是理论上的网络模型,从功能方面分成了相对独立的7个层次,由于太复…...

java版工程项目管理系统源代码-功能清单 图文解析
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…...

【chapter30】【PyTorch】[动量与学习率衰减】
前言: SGD的不足: ①呈“之”字型,迂回前进,损失函数值在一些维度的改变得快(更新速度快),在一些维度改变得慢(速度慢)- 在高维空间更加普遍 ②容易陷入局部极小值和鞍点…...

【键入网址到网页显示】
文章目录 HTTPDNS五层协议TCPIPMAC网卡(物理层)交换机路由器 HTTP 对 URL 进行解析之后,浏览器确定了 Web 服务器和文件名,接下来就是根据这些信息来生成 HTTP 请求消息了。 http://www.server.com/dir1/file1.html http:访问数…...

Nacos配置中心、配置热更新、及配置共享的记录
Nacos除了提供了注册中心的功能,同样也提供了配置中心的功能,用于管理一些叫常改动的配置 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中…...

MATLAB | 绘图复刻(八) | 堆叠柱状图+哑铃图
本次复刻的是Nature Communications中Friedman, S.T., Muoz, M.M. A latitudinal gradient of deep-sea invasions for marine fishes. Nat Commun 14, 773 (2023). https://doi.org/10.1038/s41467-023-36501-4的Fig1图像: 复刻效果: 文章可在如下网站下…...

Scala之集合(2)
目录 集合基本函数: (1)获取集合长度 (2)获取集合大小 (3)循环遍历 (4)迭代器 (5)生成字符串 (6)是否包含 衍生集合…...

【图像分割】视觉大模型SEEM(Segment Everything Everywhere All at Once)原理解读
文章目录 摘要(效果)二、前言三、相关工作四、method4.1 多用途4.2 组合性4.3 交互式。4.4 语义感知 五、实验 论文地址:https://arxiv.org/abs/2304.06718 测试代码:https://github.com/UX-Decoder/Segment-Everything-Everywher…...
Linux: command: ibstat; infiniband
文章目录 如何在Linux上安装infiniband相关的软件。ibstat相关资料 如何在Linux上安装infiniband相关的软件。 https://access.redhat.com/solutions/301643 https://docs.oracle.com/cd/E19436-01/820-3522-10/ch3-linux.html yum groupinstall “Infiniband Support” Pack…...

UML简介与类图详解
1 UML简介 1.1 UML是什么 UML,全称为Unified Model Language,即统一建模语言,是由一整套图表组成的,为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言。UML 代表了一组最佳工程实践,这些实践已被证明在…...
【每日一题】1994.好子集的数目
1994.好子集的数目 题目描述解决方案:状态压缩动态规划代码:Python 题目来源:LeetCode 原文链接:https://mp.weixin.qq.com/s/myI7_ZwJM7kizrwUtWgAZQ 难度级别:困难 题目描述 给你一个整数数组 nums。如果 nums 的一…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...