自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (4)
  • 收藏
  • 关注

原创 大数据之Hive(三)-Hive元数据配置到MySQL和HiveJDBC访问

1、MySQL引入当打开一个客户端窗口启动Hive后再打开一个客户端窗口启动Hive,会产生java.sql.SQLException异常。原因是,Metastore 默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore;Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.q

2020-11-09 20:07:44 22

原创 大数据之Hive(二)-Hive安装运行环境搭建和Hive基本操作

1、Hive安装和配置Hive1.2.1资源链接:https://pan.baidu.com/s/14kVGv6CUGPufPOD57LShGg提取码:69op1、通过XFTP工具将Hive的压缩包远程传输到Linux的/opt/software目录下2、解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面[zhukun@hadoop102 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /op

2020-11-07 16:47:19 40

原创 大数据之Hive(一)-Hive入门

1、什么是HiveHive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。(本质上是将HQL转化成MapReduce程序)...

2020-11-07 15:16:04 89

原创 大数据之Hadoop(六)-hadoop的API和I/O流操作

1、hadoop的API操作1.1建立Maven工程工程目录结构:1.2导入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h

2020-11-01 10:08:38 88

原创 大数据之HBase(四)-HBase原理分析(读流程、写流程、数据Flush过程、数据合并过程)

1、架构原理分析1、StoreFile保存实际数据的物理文件,StoreFile 以 HFile 的形式存储在 HDFS 上。每个 Store 会有一个或多个 StoreFile(HFile),数据在每个 StoreFile 中都是有序的。2、MemStore写缓存,由于 HFile 中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,等到达刷写时机才会刷写到 HFile,每次刷写都会形成一个新的 HFile。3、WAL由于数据要经 MemStore 排序后才能刷写到 H

2020-10-24 18:05:18 365

原创 大数据之HBase(三)-HBase Shell操作(DDL&DML常用操作)

1、基本操作1.进入HBase客户端命令行[zhukun@hadoop102 hbase-1.3.1]$ bin/hbase shell2.查看帮助命令hbase(main):001:0> help命令组:3.查看当前数据库中有哪些表hbase(main):002:0> list3.2 表的操作1.创建表hbase(main):002:0> create ‘student’,‘info’2.插入数据到表hbase(main):003:0> put ‘

2020-10-23 16:40:16 383

原创 大数据之HBase(二)-HBase的安装&HBase集群分布式环境搭建和群起

1、Zookeeper正常部署首先保证Zookeeper集群的正常部署,并启动之:[zhukun@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start[zhukun@hadoop103 zookeeper-3.4.10]$ bin/zkServer.sh start[zhukun@hadoop104 zookeeper-3.4.10]$ bin/zkServer.sh start也可以通过写群起脚本群起:2、Hadoop正常部署Hadoop集

2020-10-22 16:50:43 404

原创 大数据之HBase(一)-HBase入门

1、什么是HBaseHBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。2006年Google发表BigTable白皮书2006年开始开发HBase2008年北京成功开奥运会,程序员默默地将HBase弄成了Hadoop的子项目2010年HBase成为Apache顶级项目HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储

2020-10-22 16:00:22 392

原创 大数据之Zookeeper(六)-Zookeeper的API应用&监听服务器节点动态上下线案例

ZookeeperAPI应用1、创建一个Maven工程2、添加pom文件<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> </dependency> <dependency>

2020-10-22 12:42:18 390

原创 JavaWeb学习-用户登录案例(多用户类型选择登录+验证码验证)

1、项目文件整体结构2、准备每一种实体用户对应的数据库表3、index.jsp编写<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>LoginTest</title></head><body><form action="LoginServlet" method="post

2020-10-11 10:47:23 521

原创 JavaWeb学习(三)-Servlet体系结构(HTTPServlet抽象类、HttpServletRequest和HttpServletResponse接口、request和response对象)

Servlet体系结构package cn.zhukun.web.servlet;import javax.servlet.*;import javax.servlet.annotation.WebServlet;import java.io.IOException;@WebServlet("/demo")public class ServletDemo implements Servlet { @Override public void init(ServletConfig

2020-10-08 18:47:21 492

原创 JavaWeb学习(二)-Servlet入门(Servlet工作原理,Servlet接口,Servlet生命周期,Servlet3.0)

1、先介绍一下Tomcat容器tomcat的容器等级分为四个等级,servlet的容器管理context容器,一个context对应一个web工程。Engine是个引擎容器,HOST是主机容器2、Servlet入门2.1什么是Servletservlet 是在服务器上运行的小程序,一个 servlet 就是一个 Java 类,并且可以通过 “请求 - 响应” 编程模式来访问这个驻留在服务器内存里面的 servlet 程序2.2新建Servlet程序在之前创建的JavaEE项目中的src目录下创

2020-10-07 20:47:31 589

原创 JavaWeb学习(一)-Javaweb入门 && IDEA JavaEE项目部署Tomcat

1、 web相关概念1.1 软件架构C/S:客户端/服务器端B/S:浏览器/服务器端1.2资源分类1、 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析如: html,css,JavaScript2.、动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器如:servlet/jsp,php,asp…1.3网络通信三要素IP:电子设备(计算机)在网络中的唯一标识。端口:

2020-10-07 15:57:05 632

原创 大数据之Zookeeper(五)-Zookeeper客户端命令行操作

1、Zookeeper客户端命令行操作1.1启动客户端[zhukun@hadoop103 zookeeper-3.4.10]$ bin/zkCli.sh1.2显示所有操作命令[zk: localhost:2181(CONNECTED) 1] help1.3查看当前znode中所包含的内容[zk: localhost:2181(CONNECTED) 0] ls /[zookeeper]1.4查看当前节点详细数据[zk: localhost:2181(CONNECTED) 1] l

2020-10-07 11:59:30 598

原创 大数据之Zookeeper(四)-Zookeeper分布式安装部署和群起Zookeeper服务器

1、Zookeeper分布式安装部署1.1集群规划在hadoop102、hadoop103和hadoop104三个节点集群上部署Zookeeper1.2集群环境搭建hadoop102、hadoop103和hadoop104三个节点间满足SSH免密登录。通过集群分发脚本将hadoop102 的/opt/module/zookeeper-3.4.10目录内容同步到hadoop103、hadoop104(关于xsync集群分发脚本和SSH免密登录可参考:hadoop运行模式之完全分布式运行模式)[z

2020-10-06 20:14:14 878

原创 大数据之Zookeeper(三)-Zookeeper内部原理(选举机制、节点类型、Stat结构体、监听器原理和写数据流程)

1、Zookeeper内部选举机制1、半数机制: 集群中必须要有半数以上机器存活,集群才可以正常使用。(Zookeeper适合安装奇数台服务器)2、Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader,其他则为Follower,Leader是通过内部选举机制临时产生的3、以一个简单的例子来说明整个选举的过程假设有五台服务器组成的Zookeeper集群,它们的id从1~5,同时它们都是最新启动的,也就是没有历史数据,在存放数

2020-10-06 18:51:23 880

原创 大数据之Hadoop(五)-Hadoop运行模式之完全分布式运行模式(集群分发脚本、集群配置、SSH无密配置、群起集群、集群时间同步)

1、虚拟机准备通过VMware虚拟机克隆功能将hadoop101克隆出hadoop102,hadoop103,hadoop104三台虚拟机并且这3台虚拟机已经完成(关闭防火墙、配置静态IP、配置主机名称、配置主机映射)的操作,接下来准备用这3台克隆的虚拟机搭建集群。上述操作在这篇博客中有详解:Linux学习(六)-Linux学习过程中实用操作(找回root密码&&克隆虚拟机)2、集群分发因为hadoop102,hadoop103,hadoop104是通过hadoop101克隆出来的,

2020-10-06 15:44:01 955

原创 Linux学习(六)-Linux学习过程中实用操作(找回root密码&&克隆虚拟机)

1、找回root密码很多人在虚拟机中安装Linux系统的过程中就设置好了root密码,初学者没有认识到root权限用户的重要性,设密码时胡乱设置,导致后来忘记root密码,下面就来讲一讲如何找回root密码1.1重启Linux,见到下图,在3秒钟之内按下回车1.2 按回车后出现下图,按e键1.3按e键后,出现下图,↓移到第二个选项再按e键1.4在第二个选项按e键后,出现下图,在quiet后空一格输入single1.5输入single后回车回到grub模式按b进入单用户模式,然后用pa

2020-10-05 22:20:49 925

原创 Linux学习(五)-常见的系统管理操作(service后台服务管理、chkconfig服务自启配置、进程级别、系统关机重启)

1、service后台服务管理service 服务名 start (功能描述:开启服务)service 服务名 stop (功能描述:关闭服务)service 服务名 restart (功能描述:重新启动服务)service 服务名 status (功能描述:查看服务状态)例如:前面提到的网络服务的管理:(1)查看网络服务的状态#service network status(2)停止网络服务#service network stop(3)启动网络服务#ser

2020-10-05 21:19:58 903

原创 Linux学习(四)-Linux系统目录结构和 vi/vim 编辑器

Linux目录结构1、基本介绍:linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。深刻理解linux树状文件目录是非常重要的:在Linux世界里,一切皆文件。2、具体目录功能/bin (/usr/bin 、 /usr/local/bin):是Binary的缩写, 这个目录存放着最经常使用的命令/sbin (/usr/sbin 、 /usr/local/sbin):s就是Super User的意思,这里存放的是系统管理员使用的系

2020-10-05 16:19:18 1101

原创 大数据之Hadoop(四)-Hadoop运行模式之伪分布式运行模式(启动HDFS和YARN并运行MapReduce程序、配置历史服务器和日志聚集)

启动HDFS并运行MapReduce程序1、配置集群1.1配置:hadoop-env.sh先从Linux系统中获取11JDK的安装路径修改hadoop-env.sh配置文件中JAVA_HOME路径:保存后退出1.2配置:core-site.xml[zhukun@hadoop101 hadoop]$ vim core-site.xml1.3配置:hdfs-site.xml[zhukun@hadoop101 hadoop]$ vim core-site.xml2、启动集群2.

2020-10-05 15:08:18 1257 1

原创 大数据之Zookeeper(二)-Zookeeper安装(本地模式安装部署)

1、Zookeeper安装1.1将Zookeeper安装包通过Xftp工具导入到linux的/opt/software目录下Zookeeper压缩包资源:链接:https://pan.baidu.com/s/1MqbIX2BksbjzrrY5ScNfUw提取码:6a6r(因为之前学习Hadoop时已经安装了JDK所以不需要再安装JDK,如果没有先安装JDK)关于Xftp的安装和使用:远程登录Linux系统(Xshell5和Xftp5的使用)1.2将Zookeeper压缩包解压到/opt/m

2020-10-05 12:29:47 1053

原创 大数据之ZooKeeper(一)-ZooKeeper入门

1、Zookeeper入门1.1概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目Zookeeper工作机制Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应1.2Zookeeper的特点Zookeeper是由一个领导者(Leader)和多个跟随者(F

2020-10-05 11:46:56 1036

原创 Linux学习(一)-虚拟机VMware安装和CentOS系统安装

虚拟机VMware安装1、VMware12 pro 资源链接:https://pan.baidu.com/s/189YbYP4_6HrZbTZ_eD78ow提取码:d5es2、安装步骤文档链接:https://pan.baidu.com/s/184YUYKN9j23CH9Q4QWKmrw提取码:xuezCentOS系统安装1、CentOS6.8镜像资源链接:https://pan.baidu.com/s/1rE-Iu0NrOAoQbX2YmRwexg提取码:7bfx2、安装步骤文档链

2020-10-04 16:23:30 1268

原创 大数据之Hadoop(三)-Hadoop运行模式之本地运行模式(实现官方Grep案例和WordCount案例)

Hadoop本地运行模式1、官方Grep案例创建在hadoop-2.7.2文件下面创建一个input文件夹[zhukun@hadoop101 hadoop-2.7.2]$ mkdir input将Hadoop的xml配置文件复制到input[zhukun@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input执行share目录下的MapReduce程序[zhukun@hadoop101 hadoop-2.7.2]$ bin/had

2020-10-04 16:11:38 1236

原创 大数据之Hadoop(二)-Hadoop运行环境搭建(JDK安装和Hadoop安装及Hadoop目录结构分析--手把手教)

1、虚拟机环境准备1、准备一台虚拟机2、配置网络设置静态IP具体参考:Linux网络配置3、修改主机名vim /etc/sysconfig/network4、关闭防火墙#1:查看防火状态systemctl status firewalldservice iptables status#2:暂时关闭防火墙systemctl stop firewalldservice iptables stop#3:永久关闭防火墙systemctl disable firewalld

2020-10-04 15:32:50 1423

原创 大数据之Hadoop(一)-Hadoop入门

1、Hadoop是什么Hadoop是一个由Apache基金会所开发的分布式系统基础架构主要解决,海量数据的存储和海量数据的分析计算问题广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈

2020-10-04 14:10:21 1217

原创 Linux学习(二)-Linux网络配置和vmtools安装

1、网络配置1.1网络配置的三种形式1.2查看网络IP和网关查看虚拟网络编辑器点击NAT设置查看网关1.3Linux网络环境配置第一种方法(自动获取IP)默认的是自动获取IP缺点:Linux启动后会自动获取IP,每次自动获取的IP地址可能不一样,不适合做服务器因为服务器的IP需要固定的第二种方法(指定静态固定IP)修改配置文件来指定IP,并可以连接到外网打开终端输入以下命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0按照图

2020-10-02 16:18:35 1424

原创 Linux学习(三)-远程登录Linux系统(Xshell5和Xftp5的使用)

1、为什么要使用Linux远程登录?在公司实际项目开发中,Linux服务器是开发小组共享的,Linux服务器管理员有root权限,他为开发小组的每一位成员创建一个用户和密码,开发项目的程序员使用这个分配给自己的用户名和密码远程登录到Linux系统上进行项目管理或者开发,正式上线的项目是在公网上运行的,每一个用户在Linux系统中都有一个home文件夹在创建用户时就已经创建,当员工离职后root权限管理员把该员工对应的用户名注销但通常不删除用户名对应的文件夹。2、远程登录Linux-Xshell5Xs

2020-10-02 16:02:38 1341

原创 数据结构(Java实现)-图解红黑树(R-B-Tree)

1、红黑树的基本介绍红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。红黑树的特性:1、每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。2、根节点是黑色。3、如果一个节点是红色的,则它的子节点必须是黑色的。4、.从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度)5、每个叶子节点是黑色。 [注意:这里

2020-09-21 15:36:06 1341

原创 LeetCode解题笔记-LC2-计算逆波兰式(后缀表达式)的值(Postfix expression evaluation)

题目描述:Calculate the value of inverse Polish (postfix expression)The operator only contains " +", “-”, “*” and “/”, the operand may be an integer or other expressions计算逆波兰式(后缀表达式)的值运算符仅包含"+","-“和”/".被操作数可能是整数或其他表达式例如:["2", "1", "+", "3", "*"] -> ((2

2020-09-20 15:40:39 1599

原创 Java并发编程(二)-Thread类、Runnable接口与多线程原理

1、Thread线程类Java使用 java.lang.Thread 类代表线程,所有的线程对象都必须是Thread类或其子类的实例。每个线程的作用是 完成一定的任务,实际上就是执行一段程序流即一段顺序执行的代码。Java使用线程执行体来代表这段程序流。构造方法:public Thread() :分配一个新的线程对象。public Thread(String name) :分配一个指定名字的新的线程对象。public Thread(Runnable target):分配一个带有指定目标新的线程对

2020-09-20 14:55:08 1610

原创 Java并发编程(一)-线程入门(理解并发与并行、线程与进程)

1、并发与并行并发:指两个或多个事件在同一个时间段内发生并行:指两个或多个事件在同一时刻发生(同时发生)在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每 一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为分时交替运行的时间是非常短的。而在多个 CPU 系统中,则这些可以并发执行的程序便可以分配到多个处理器上(CPU),实现多任务并行执行, 即利用每个处理器来处理一个可以并发执行的程序,这样多

2020-09-20 12:42:59 1524

原创 LeetCode解题笔记-LC1-二叉树最小深度(minimum-depth-of-binary-tree)

题目描述Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.求给定二叉树的最小深度。(最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量)示例:输入: {1,2,3,4,5}输出:2方法一:递归运行时间: 41ms 占

2020-09-17 15:57:39 1597

原创 数据结构(Java实现)-图解平衡二叉树(AVL树)

1、问题引入给定一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在分析已经构建的BST树存在的问题:左子树全部为空,从形式上看,更像一个单链表.插入速度没有影响查询速度明显降低(因为需要依次比较), 不能发挥BST树的优势,因为每次还需要比较左子树,其查询速度比单链表还慢解决方案-平衡二叉树(AVL)2、平衡二叉树介绍平衡二叉树:也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树, 可以保证查询效

2020-09-17 13:29:09 1621

原创 数据结构(Java实现)-图解二叉排序树(二叉查找树、二叉搜索树)

二叉排序树1、二叉排序树的介绍

2020-09-16 13:56:13 1873

原创 数据结构(Java实现)-图解哈夫曼树(最优二叉树)与哈夫曼编码原理(使用哈夫曼编码压缩并解压数据)

1、哈夫曼树1.1哈夫曼树基本介绍给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl) 达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)路径:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径路径长度:通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1结点的权:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权结点的带权路径长度:从根结点到该结点之间的路径长度与

2020-09-16 09:22:24 1940

原创 算法(Java实现)-图解十大经典排序算法(五)——计数排序、桶排序、基数排序

1、计数排序1.1计数排序介绍计数排序:不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。算法描述:找出待排序的数组中最大和最小的元素;统计数组中每个值为i的元素出现的次数,存入数组C的第i项;对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加);反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C(i)减去1。分析:计数排序是一个稳定的排序算法

2020-09-14 16:07:48 2179

原创 算法(Java实现)-图解十大经典排序算法(四)——归并排序

1、归并排序1.1归并排序介绍归并排序(MERGE-SORT) :是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。说明:可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。分阶段可以理解为就是递归拆分子序列的过程算法描述:把长度为n的输入序列分成两个长度为n/2

2020-09-14 16:06:59 2130

原创 算法(Java实现)-图解十大经典排序算法(三)——选择排序(简单选择排序、堆排序)

1、选择排序1.1选择排序介绍选择式排序:是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。选择排序思想: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。算法描述:初始状态:无序区为R[1…n],有序区为空;第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1…i-1]和R(i…n)。该趟排序从当前无序区中-选出关键

2020-09-14 16:06:17 2140

springboot基础脚手架.zip

springboot 脚手架,整理一个我自己初始化SpringBoot项目时的一个脚手架,便于后面查阅。因为SpringBoot的约定大于配置,在整合各个组件的时候,我们仅仅写很少的代码就能 整合 跑起来。

2020-08-12

ssm框架酒店管理系统.zip

基于spring+springmvc+mybatis 写的关于酒店管理的后端系统,实现后端对酒店管理相关信息的数据库增删改查操作。

2020-08-12

Javaweb学生信息管理系统.zip

基于jsp + servlet +Mysql 写的关于学生信息管理的后端系统,实现后端对学生、管理员、老师、课程信息的数据库增删改查操作。

2020-08-12

Javaweb学生宿舍管理系统.zip

基于jsp + servlet +Mysql 写的关于学生宿舍管理的后端系统,实现后端对学生宿舍管理信息的数据库增删改查操作。

2020-08-09

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除