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

25.停车场管理系统(基于web的Java项目)

目录

1.系统的受众说明     

2.相关技术与方法

3.系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 需求分析

3.2.1 系统功能描述

3.2.2 用例图分析

4. 系统设计

4.1 系统类分析

5. 系统详细设计与实现

5.1 用户登录

5.2 系统信息管理

5.3 车位信息管理

5.4 IC卡管理

5.5 临时车主管理

5.6 固定车主管理

5.6 收费管理

5.7 打印管理

5.8系统功能操作


 

1.系统的受众说明
     

     1 在校学习的学生,可用于日常学习使用或是毕业设计使用

     2 毕业一到两年的开发人员,用于锻炼自己的独立功能模块设计能力,增强代码编写能力。

     3 亦可以部署为商化项目使用。

     4 需要完整资料及源码,请在文末获取联系方式领取。

2.相关技术与方法

  1. J2EE介绍

J2EE作为一个企业级的开放式应用规范,为公司和企业提供了大量的开发技术规范和一个多层次的分布式应用模型,具有良好的兼容性、安全性和可移植性。

不同的开发商遵循J2EE的开发规范,由于J2EE兼容性,使得数据信息具有很好良好的兼容性、安全性和可移植性。适用于各个平台。现如今,得到了大家的一致肯定,被大多数企业应用,提高开发效率。而停车场管理系统采用这个规范,其优良的可移植性和兼容性得到了很好的应用,易操作和学习。

  2. 构建本系统J2EE开发工具

Java虚拟机:JDK1.8

java开发工具:Eclipse4.6

web服务器:Tomcat8.0

环境配置过程:安装好JDK1.8后,选择Eclipse4.6的Project->Web Project, 构建工程。

    1. MVC设计模式

    MVC是Model View Controller 模型-视图-控制器的简称。其用于设计Web程序的模式。Model(模型)是程序处理代码逻辑的部分。View(模型)是程序处理数据部分。Controller(控制器)是处理数据传输过来与业务逻辑进行交互的部分。停车场管理系统采用MVC设计模式,方便开发人员修改或者调试代码,避免代码杂糅在一起。遇到问题时无法快速定位。而且MVC分层也简化了开发。不同的开发人员可以同时开发这三个逻辑,提高了开发效率,为开发商节约时间。

3.JSP介绍

JSP其实是一个简单化的Servlet设计,一种面向对象的动态网页技术标准。其以Java为脚本语言,可以将java代码嵌入jsp页面,将代码和业务逻辑分离开来,实现动态交互。用户通过表单或者超链接提交数据,数据传到对应的Servlet中,通过Java代码处理,形成动态交互。JSP现今被大多数企业所应用,对于J2EE来说必不可缺。它使Web开发简化,提高效率,减少企业支出。

4.jQuery

Query就是查询的意思,更加方便快捷的查询页面控件,语法简单。jQuery是继prototype之后有一个优秀的JavaScript框架,兼容了多种browse(IE6.0+),不但能够方便的操作文档和DOM、处理事件、实现动画效果,而且很方便的实现AJAX交互、兼容CSS3[4]jQuery也提供了给开发人员在其上创建插件的能力,封装了JavaScript的函数,write less ..do more ...就是jQuery的宗旨。

5.智能化功能介绍

  1. RFID卡技术

RFID即为射频识别是一种无线通信技术,它是通过将无线电的电信号转化成无线电频率的电磁场,把在物品上标签附着的数据传输出去,用此来达到自动识别和追踪。它与条形码不同的是,不需要再识别器范围之内,也可以加入追踪器之内。

现今,大多数行业多运用了RFID技术。将数据标签附着在一套正在生产中的机器,便于厂家在线跟踪生产进度。当前也可以将其应用在图书馆中,便于管理和阅读者寻找书籍等等方面。停车场上也可以使用,汽车上装载的射频应答器,可便于进出车场的收费管理,避免难以预测的问题。提高停车场的效率。

    2.车牌识别功能介绍

车牌识别技术是通过监控车辆并自动提取车牌信息进行处理的技术。车牌识别在在现在交通系统中扮演着重要的角色,它以图形化处理、模式识别等技术作为基础,对得到定位车辆图像进行分析,从而得到每辆车的车牌号码,完成识别过程。再通过一些手段的处理可以实现停车场收费管理。停车场管理系统采用该项技术可以更加方便快捷的管理进出场车辆。

3.系统分析

3.1 可行性分析

3.1.1 技术可行性

在停车场管理系统的设计中,MVC(Model-View-Control)设计模式贯穿了整系统,框架采用SpringMVC+JDBC组合结构。

  1. 模型层

模型层主要是逻辑处理。 在本系统中,提供处理数据持久化,JavaBean对业务逻辑Service封装。

      2.视图层

停车场管理系统采用JSP来实现视图层。

      3.控制层

采用SpringMVC技术来处理前台请求与业务逻辑层的交互。

在停车场管理系统的设计中应用MVC设计模式,便于开发人员设计代码,由于这三个逻辑可以同时进行,提高了效率,节省时间,且由于分层,将代码隔离开来,方便开发人员操作。且停车场管理系统采用RFID卡等等技术,方便车辆出入,增加智能化,便于管理。可以从这个角度得出,开发智能停车场是可行的。

3.1.2 经济可行性

主要是对开发本系统的经济效益进行评价。根据调查了解到,大多数公共场所出现停车难、车位少等问题,停车场的效率十分低下,导致停车场的收益降低,且不安全。针对这种情况,有必要对停车场低效率的原因进程分析,并为提高停车场的效率提出改进的对策。经过分析调查,我们得出的停车场管理系统相当的有用,从这个角度来说,开发智能停车场管理系统是可行的。根据花费的查阅资料时间和框架设计时间,基本的功能实现需要差不多3个月左右,从2017年1月到4月,实现再加上相关功能的测试以及代码实现要两个2星期左右,对于那些智能化功能写的接口,待技术引进再后期磨合,实现需待定。总的来说4月份可设计完毕。根据系统要求规定,系统需要配合摄像头、引进RFID卡技术等,需要花费一笔费用,再预估计范围之内,从此看来,开发智能停车场是可行的。

3.1.3 操作可行性

开发所用的开发工具是eclipse,这个软件在各种计算机上都可以支持运行,并且操作方便,用户易上手。操作员经过简单的讲解就可以使用此系统,从这个方面而言,开发智能停车场管理系统是可行的。

3.2 需求分析

3.2.1 系统功能描述

系统信息管理:包括添加角色、管理角色、添加用户、管理用户、管理角色和管理用户模块可以对角色和用户进行增、删、改。

IC卡信息管理:添加IC卡类型,管理IC卡类型。管理IC卡信息可以对车主的IC卡信息进行增、删、改。

车位信息管理:管理车位、添加车位,管理车位信息模块可以对车主车位信息进行增、删、改。

固定车主停车管理:出入场设置、停车场信息管理。出入场设置可以设用户的入场和出场,相应的在停车信息中有一个展现。停车信息管理可以对车主的停车信息进行查询和删除。

临时车辆信息管理:车主入场信息,车主出场设置。设置车主入场,在相应的表中展现,在车主出场时进行收费,临时车主停车信息管理可以对临时车主的信息进行删除和查询。

收费管理:管理收费、添加收费信息。管理收费信息可以对车主的费用进行一个收费,可以对车主的收费信息进行查询和删除。

打印报表:查看报表信息,对固定车主和临时车主相关信息进行打印。

系统功能操作:修改密码、退出系统。

3.2.2 用例图分析

根据停车场管理系统的功能描述,系统权限为:管理员。管理员主要功能包括车位信息管理,系统信息管理、IC卡管理、车主管理、固定车主管理等功能。用例图椭圆代表用例,线条人代表用户[1],用户与功能之间是关联关系,停车场管理系统的用例图如图3.1所示:

图3.1停车场管理系统用例图

4. 系统设计

本章内容包括系统类分析、核心业务设计、数据库设计三个部分,其中系统类分析需要给出系统类图和类的说明,需要注意在给出类图的时候只需要给出核心业务类,对辅助类如界面类、数据库连接类这种类型的不需要给出,如果所涉及的类(包括类当中的内容)较多时,应首先给出类间关系图(图中的类只有名称没有属性和方法),之后在单个类说明中给出具体类的类图,类图同样需要用WORD进行绘制。

核心业务设计主要描述的是完成某项具体业务时,类之间的消息配合,用时序图进行表述,时序图可以用其他工具绘制,但不能够有其他的颜色出现。

数据库设计主要描述在系统中需要持久化的对象,需要给出ER图,如果系统所涉及的实体(或实体的属性)较多时同样采用分层绘制的方法,顶层图给出实体间关系,下层图针对每一个实体进行具体绘制。

4.1 系统类分析

经分析,该系统核心业务类见下图:

 

      1. USER类

USER类用于记录系统的用户信息,并完成登陆和注销的操作。具体说明如表4-2所示。

                1. USER类功能表

类功能描述

处理和用户相关的业务操作

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

ID

用户ID

长度限制20位

Public

String

Name

姓名

长度限制20位

public

String

Password

密码

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

login

string id,string pwd

String"

登陆系统,用户输入ID和PASSWORD后进行验证,验证通过返回用户名,并登记日志,验证失败返回空串。

public

logout

string id

Void

注销系统,注销成功清理用户的相关信息并登记日志。

      1. JOURNAL类

JOURNAL类由5个类组成。分别是Fixed类、Temp类、Role类、Card类、Seat类 。

Fixed类记录固定车主信息,具体情况下如表4-3所示。

                1. FIxed类功能表

类功能描述

处理和固定车主的业务操作

所在包名称

DAL

继承对象

实现对象

表4-3FIxed类功能表

类属性

保护属性

类型

名称

描述

备注

Public

String

Fix_id

记录编号

长度限制20位

Public

String

Card_id

IC卡号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Update

string Fix_id,string pwd

int

进入固定车主信息中,点击编辑,可修改固定车主信息

public

Delete

string Fix_id

Void

进入固定车主信息中,点击删除,可删除固定车主信息

Temp类记录临时车主信息,具体情况如表4-4所示。

                1. Temp类功能表

类功能描述

处理临时车主的业务操作

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

Temp_id

记录编号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Update

string Temp_id

int

进入临时车主信息中,点击编辑,可修改固定车主信息

public

Delete

string Temp

Void

进入固定车主信息中,点击删除,可删除固定车主信息

Role类管理角色信息,具体情况如表4-5所示。

                1. Role类功能表

类功能描述

角色管理

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

Role_id

记录编号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Insert

string Role_id

int

增加角色

public

Delete

string Role_id

Void

删除角色

Card类记录IC卡信息,具体情况如表4-6所示。

                1. Card类功能表

类功能描述

处理IC卡相关业务

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

Card_id

记录编号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Update

string Card_id

int

进入IC卡信息中,点击编辑,可修改IC卡信息

public

Delete

string Card_id

Void

进入IC卡信息中,点击删除,可删除IC卡信息

Seat类记录车位信息,具体情况如表4-7所示。

                1. Seat类功能表

类功能描述

处理车位信息相关业务

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

Seat_id

记录编号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Update

string Seat_id,string Seat_name

int

进入车位信息中,点击编辑,可修改车位信息

public

Delete

string Seat_id

Void

进入车位哦信息中,点击删除,可删除车位信息

    1. 关键业务设计
      1. 系统登录

管理员通过UI界面输入用户名,密码,调用USERLOGIN方法,在LOGIN方法中调用DATABASE的checklogin方法,最后返回成功。

    1. 数据库设计
      1. 数据需求分析

系统E-R图表明了实体与实体之间的关系,根据系统的功能需求,系统有用户、IC卡、临时车主、固定车主、车位、收费信息六个实体。一个固定车主拥有一张IC卡和一个车位,一个临时车主拥有一个车位和临时IC卡。固定车主和临时车主产生收费信息。实体关系属性图如图4.3所示[11]

图4.3停车场管理系统E-R图

      1. 数据库的实现

根据系统需求确定系统有如下7张表。

用户表:储存用户信息。

角色表:储存角色信息。

车位管理表:管理车位信息以及车位状态。

IC卡管理表:管理IC卡信息。

临时车辆记录表:记录临时车辆的信息。

固定车主表:记录固定车主信息及出入场信息。

收费表:记录用户们的收费信息。

用户表用于记录用户的编号、姓名、电话等属性信息,如表4-8所示。

表4-8用户表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

user_id

Varchar2

50

0

2

role_id

Varchar2

50

0

3

user_name

Varchar2

50

0

4

real_name

Varchar2

50

0

5

user_pwd

Varchar2

20

0

6

user_phone

Varchar2

50

0

角色表储存角色的编号、名字等信息,如表4-9所示。

表4-9角色表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

role_id

Varchar2

50

0

2

role_name

Varchar2

50

0

车位管理表记录车位的编号、ID、状态等属性信息,如表4-10所示。

表4-10车位管理表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

seat_id

Varchar2

50

0

2

seat_num

Varchar2

50

0

3

seat_setion

Varchar2

50

0

4

seat_state

int

11

0

5

seat_tag

Varchar2

50

0

IC卡表记录IC卡的ID、车位ID、姓名、车牌号等属性信息,如表4-11所示。

表4-11 IC卡表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

card_id

varchar2

50

0

2

seat_id

Varchar2

50

0

3

user_name

Varchar2

50

0

4

user_gender

Varchar2

1

0

5

user_addr

Varchar2

50

0

6

car_num

Varchar2

50

0

临时车辆记录表,用于记录临时车主的编号、车牌号、出入场时间等属性信息,用户如表4-12所示。

表4-12临时车辆表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

temp_id

Varchar2

50

0

2

card_id

Varchar2

50

0

3

car_num

Varchar2

50

0

4

entry_date

date

0

0

5

entery_time

time

0

0

6

out_date

date

0

0

7

out_time

time

0

0

8

temp_money

float

0

4

固定车主表用于记录固定固定车主的编号、IC卡编号、出入场时间等属性信息,如表4-13所示。

表4-13固定车主表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

fixed_id

Varchar2

50

0

2

card_id

Varchar2

50

0

3

entry_date

date

0

0

4

entery_time

time

0

0

5

out_date

date

0

0

6

out_time

time

0

0

收费表用于记录收费的编号、车主姓名、车牌号、收费金额等属性信息,如表4-14所示。

表4-14收费表

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

role_id

Varchar2

25

0

2

role_name

Varchar2

255

0

3

role_type

Varchar2

255

0

4

car_num

Varchar2

25

0

5

car_money

Varchar2

255

0

6

car_time

Varchar2

255

0

5. 系统详细设计与实现

5.1 用户登录

登录模块界面如图5.1所示:

                                图5.1  用户登录

     代码流程如图5.2。

                           图5.2  用户登录

功能描述:登陆页面需要用户名、密码进行登录。登录的同时对输入的用户名和密码进行验证,首先我们要保证用户名和密码不能为空。其次是对数据库的验证,系统在数据库中搜索用户输入的用户名是否存在,若不存在,则提示出错。并且重新登录,系统不允许两个用户同时登录,该操作在一定程度上使系统的安全性有所提高。

登录主要代码位置:TestPark/src/DAL/login.java。主要封装了对登录数据的操,该类中有三个方法分别用于检查用户登录信息是否合法,根据用户编号和角色编号获取用户名和角色信息。

publicclass Login {

publicboolean checkLogin(String user_id,String user_pwd)

{

String sqlCmd="select count(*) from user where user_id=? and user_pwd=?";

Object[] objList=new Object[2];

objList[0]=user_id;

objList[1]=user_pwd;

String result=SQLUtil.excuteScalar(sqlCmd,objList).toString(); if(result.equals("1"))

{

returntrue;

}

else {

returnfalse;

}

}

public String  getName(String user_id)

{

String sqlCmd="select user_name from user where user_id='"+user_id+"'";

String result=SQLUtil.excuteScalar(sqlCmd, null).toString();

return result;

}

public String  getSysLevel(String user_id)

{

String sqlCmd="select role_id from user where user_id='"+user_id+"'";

String result=SQLUtil.excuteScalar(sqlCmd, null).toString();

return result;

}

}

5.2 系统信息管理

添加角色信息如图5.3所示:

图5.3 添加角色信息

管理角色如图5.4所示:

图5.4 管理角色信息

添加用户信息界面如图5.5所示:

图5.5 添加用户信息

管理用户信息界面如图5.6所示:

图5.6 管理用户信息

功能描述:该模块是对系统信息的一个管理,添加角色输入编号和名称,后台数据库进行验证,若角色没有存在则添加数据成功,跳转到管理界面。管理角色信息可以根据用户的编号,角色名称进行查询操作、编辑、和删除操作。添加用户信息输入用户编号、名称、昵称、姓名、密码电话点击确定进行后台数据库的验证,若成功添加则跳转到管理界面。管理用户界面可根据用户编号、角色名称、用户名称、真实姓名进行查询、编辑和删除操作。

系统信息模块流程图如图5.7所示:

图5.7 停车场管理系统信息流程图

5.3 车位信息管理

添加停车位信息如图5.8所示:

图5.8

添加车位

管理车位信息如图5.9所示:

图5.9 管理车位信息页面

功能描述:该模块是对车位的一个管理。点击添加车位信息,输入编号选择是A区还是B区,添加成功则会跳转到管理界面。管理界面可根据车位ID、车位编号、所属区域、车位备注进行查询,还可对车位信息进行编辑和删除。

对车位数据的操作封装在:seat.java类中。该类中主要封装了分页和对车位信息的增、删、改、查等方法。首先获取车位信息列表,然后获取未分配的车位列表,根据查询条件获取获取分页后的信息列表,数据的更新、插入、删除,获取分页总数,根据查询条件获取分页总数。

publicclass Seat {

public List<Object> getEntity()

{

String sqlCmd="select *from Seat";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

}

public List<Object> getNoUseSeat()

{

String sqlCmd="SELECT *FROM Seat WHERE seat_id NOT IN(SELECT seat_id FROM card)";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

}

public List<Object> getEntity(int page)

{

int size=(page-1)*15;

String sqlCmd="select *from Seat limit "+size+",15";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

}

public List<Object> getEntityByWhere(String sqlWhere,int page)

{

int size=(page-1)*15;

String sqlCmd="select *from Seat where "+sqlWhere+" limit "+ size+",15";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

        }

publicint deleteEntity(String seat_id)

        {

            String sqlCmd="delete from Seat where seat_id='"+seat_id+"'";

return DBUtil.SQLUtil.executeNonQuery(sqlCmd, null);

        }

public List<Object> getEntityById(String seat_id)

        {

            String sqlCmd="select *From Seat where seat_id='"+seat_id+"'";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

        }

publicint updateEntity(String seat_id,String seat_num,String seat_section,String seat_state,String seat_tag)

        {

            String sqlCmd="Update Seat set seat_num='" + seat_num + "',seat_section='" + seat_section + "',seat_state='" + seat_state + "',seat_tag='" + seat_tag + "' where seat_id='"+seat_id+"'";

return SQLUtil.executeNonQuery(sqlCmd, null);

        }

publicint insertEntity(String seat_id,String seat_num,String seat_section,String seat_state,String seat_tag)

        {

            String sqlCmd="Insert into Seat values('" + seat_id + "','" + seat_num + "','" + seat_section + "','" + seat_state + "','"+seat_tag+"')";

return SQLUtil.executeNonQuery(sqlCmd, null);

        }

publicboolean checkExist(String seat_id)

        {

            String sqlCmd="select count(*) from Seat where seat_id='"+seat_id+"'";

if(1==Integer.parseInt(SQLUtil.excuteScalar(sqlCmd, null).toString()) )

            {

returntrue;

            }

returnfalse;

        }

public Object getPageCount()

{

String sqlCmd="SELECT CEIL( COUNT(*)/15.0) FROM Seat ";

return SQLUtil.excuteScalar(sqlCmd, null);

}

public Object getPageCountByWhere(String sqlWhere)

{

String sqlCmd="SELECT CEIL( COUNT(*)/15.0) FROM Seat where "+sqlWhere;

return SQLUtil.excuteScalar(sqlCmd, null);

}

        }

车位信息流程图如图5.10所示:

图5.10 车位信息流程图

5.4 IC卡管理

添加IC卡界面如图5.11所示:

 图5.11  添加IC卡界面

管理IC卡信息界面如图5.12所示:

图5.12  管理IC卡界面

功能描述:该功能模块是对IC卡信息的管理,点击添加IC卡输入如图5.11所示的信息,添加成功后,跳转到图5.12的界面。管理界面可根据IC卡编号、车位编号、用户名称、车牌号码进行查询。也可进行相应的编辑和删除操作。

IC卡管理模块流程图如图5.13所示:

图5.13  IC卡管理流程图

5.5 临时车主管理

临时车主入场信息界面如图5.14所示:

图5.14临时车主入场页面

车主出场信息界面如图5.15所示:

图5.15临时车主出场页面

结算页面如图5.16所示

                         

图5.16 结算页面

功能描述:该模块是对临时车主出入场的管理。点击入场管理,出现如图5.14所示的界面,输入信息,如果输入成功就会跳转到如图5.15的界面,出场日期,日期显示未出场,停车费用显示待结算。点击结算出现如图5.16界面。

临时车主流程图如图5.17所示:

                        图5.17临时车主流程图

5.6 固定车主管理

固定车主出入场设置界面如图5.18所示:

 图5.18 固定车主出入场设置界面

停车信息管理界面如图5.19所示:

图5.19管理停车场信息界面

功能描述:该模块是对固定车主的出入场设置以及停车信息进行管理。如图5.18所示,对车主进行入场设置,点击确定后就会在下面的表格中显示,点击停车信息管理按钮,就会出现如图5.19所示。设置出场,出场时间就会出现在停车信息表中。

固定车主流程图如图5.20所示:

5.6 收费管理

管理收费信息如图5.21所示:

图5.21管理收费信息

功能描述:临时用户是一小时3元收费,固定用户是按次数收费。

5.7 打印管理

查看打印信息如图5.22所示:

图5.22打印信息

功能描述:该模块可以将用户的消费情况进行打印,公开,透明清楚。

5.8系统功能操作

密码修改、退出系统界面如图5.23所示:

5.23 系统功能操作界面

功能描述:该模块是对系统功能的一个操作,可进行修改密码。点击退出系统则会跳转到如图5.1的登录界面。


http://www.kler.cn/a/381989.html

相关文章:

  • 32. 线程、进程与协程
  • 前端开发 之 12个鼠标交互特效上【附完整源码】
  • C的编译过程有哪些步骤?
  • 微信小程序UI自动化测试实践 !
  • 数据库管理系统——数据库设计
  • 浅析InnoDB引擎架构(已完结)
  • SpringBoot day 1105
  • springcloud各组件说明
  • ctfshow(89,90,92,93)--PHP特性--intval函数
  • 【RDD算子的分类】RDD的转换算子和触发算子(行为算子)、以及各个算子的作用,对比sql中的关键字
  • 【系统架构设计师(第2版)】十一、未来信息综合技术
  • Hearts of Iron IV 之 Archive Modification
  • HTML+javaScript+CSS
  • 【个人记录】screen和tmux
  • “农田奇迹:如何用遥感技术实现作物分类与产量精准估算“
  • Java:获取HttpServletRequest请求参数
  • PostgreSQL 到 PostgreSQL 数据迁移同步
  • 计算机网络——网络层导论
  • 云渲染与汽车CGI图像技术优势和劣势
  • 用 Python 写了一个天天酷跑(附源码)
  • 【docker入门】docker的安装
  • vue3中setup的作用是什么?
  • ELK实现加载多个配置日志文件
  • Jest进阶:测试 Vue 组件
  • WAPI认证过程如何实现?
  • stm32引脚PB3、PB4、PA15作为普通IO口用时,需要先解除调试端口复用