Java Web项目 慧心人力资源管理系统
题目:慧心人力资源管理系统
文档下载:https://download.csdn.net/download/weixin_44893902/16336711
完整项目下载:https://download.csdn.net/download/weixin_44893902/16393518
目录
一、语言和环境
- 实现语言:JAVA语言。
- 环境要求:MyEclipse/Eclipse + Tomcat + MySql。
- 使用技术:Jsp+Servlet+JavaBean
- 数据库技术:JDBC
二、实现功能
人力资源公司为了提高管理效率,需开发一套B/S结构人力资源管理系统,对员工信息进行管理,主要功能如下:
1、首页默认显示现有的所有员工信息
2、鼠标悬停某行数据,该行样式发生变化
3、表格最后一行为统计行,显示当前一共有多少条数据
4、 点击右下“新增”按钮进入新增页面,输入相关信息后点击添加,完成新增员工信息功能,并且返回到首页显示最新数据,如图4、5所示
5、点击每行最后删除功能时弹出提示框,用户确认后删除该行数据并刷新最新员工数据,如图6所示。
6、点击每行更新链接后跳转到更新页面,更新界面显示出要修改的员工信息,更新成功后跳转到首页显示最新数据,如图8、9所示:
三、数据库设计
创建数据库(HRDB)。
创建员工信息表(TB_EMP),结构如下。
字段名 |
说明 |
字段类型 |
长度 |
备注 |
id |
员工编号 |
int |
主键,自增,增量为1 |
|
name |
员工姓名 |
varchar |
50 |
不能为空 |
gender |
员工性别 |
varchar |
50 |
不能为空 |
birthday |
员工生日 |
varchar |
50 |
不能为空 |
phone |
手机号码 |
varchar |
11 |
不能为空 |
四、具体要求及推荐实现步骤
创建数据库,创建员工信息表,添加测试数据(至少添加4条测试数据)。
创建web工程并创建各个包,导入工程所需的jar文件。
创建Employee实体类。
创建BaseDAO工具类使用JDBC完成数据表数据的增删改查。创建Servlet相关类完成功能对应的用户请求处理。
编写JSP页面进行数据展示,以及新增、修改的界面。
五、评分标准
题目:慧心人力资源管理系统 |
||
5 |
数据库(提交数据库脚本) |
|
5 |
创建数据库及添加测试数据 |
|
5 |
正确创建和编写实体类,包含所有属性及方法 |
|
2 |
正确创建BaseDao类,包含获取连接及关闭资源方法 |
|
35 |
正确创建EmployeeDAO类或者EmployeeMapper接口,使用jdbc |
|
10 |
正确创建查询数据返回集合的方法 |
|
5 |
正确创建删除数据的方法 |
|
10 |
正确创建更新数据的方法 |
|
10 |
正确创建新增数据的方法 |
|
30 |
Servlet相关处理类 |
|
10 |
正确创建处理全部数据查询查询请求Servlet类,web.xml中请求映射配置或注解正确 |
|
5 |
正确创建处理新增数据请求Servlet类,web.xml中请求映射配置或注解正确 |
|
5 |
正确创建处理删除数据请求Servlet类,web.xml中请求映射配置或注解正确 |
|
5 |
正确创建处理更新数据时单个数据查询请求Servlet类,web.xml中请求映射配置或注解正确 |
|
5 |
正确创建处理数据更新请求Servlet类,web.xml中请求映射配置或注解正确 |
|
18 |
JSP相关页面 |
|
10 |
展示所有数据页面 7分 显示统计信息3分 |
|
3 |
修改员工信息页面 |
|
5 |
新增员工信息页面 |
|
5 |
总体编程技术 |
|
2 |
编码命名规范 |
|
3 |
程序正常运行,无异常 |
|
总分 |
100分 |
六、实现代码
1、目录结构:
2、使用到的包:
3、Java代码:
util
BaseDao.java
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class BaseDao {
private static String url="jdbc:mysql://localhost:3306/hrdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false";
private static String userName="root";
private static String password="root";
private static String driver="com.mysql.jdbc.Driver";
private static Connection connection;
private static Properties properties = new Properties();
static{
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
if(connection==null||connection.isClosed()){
connection = DriverManager.getConnection(url,userName,password);
}
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
public static void close(Connection connection) throws Exception {
try {
if (connection != null) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
throw new Exception();
}
}
public static void main(String[] args) {
System.out.println(getConnection());
}
}
entity
TbEmp.java
package entity;
import java.io.Serializable;
public class TbEmp implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private String gender;
private String birthday;
private String phone;
public TbEmp() {
super();
}
@Override
public String toString() {
return "TbEmp [id=" + id + ", name=" + name + ", gender=" + gender + ", birthday=" + birthday + ", phone="
+ phone + "]";
}
public TbEmp(Integer id, String name, String gender, String birthday, String phone) {
super();
this.id = id;
this.name = name;
this.gender = gender;
this.birthday = birthday;
this.phone = phone;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
mapper
EmpMapper.java
package mapper;
import java.util.List;
import entity.TbEmp;
public interface EmpMapper {
//查询所有
List<TbEmp> queryAll();
//添加
int addEmp(TbEmp tbEmp);
//更新
int updateEmp(TbEmp tbEmp);
//删除
int del(int id);
}
service
EmpService.java
package service;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mysql.jdbc.Connection;
import entity.TbEmp;
import mapper.EmpMapper;
import util.BaseDao;
public class EmpService implements EmpMapper {
@Override
public List<TbEmp> queryAll() {
Connection conn = null;
String sql = null;
try {
sql = "select * from tb_emp";
conn = (Connection) BaseDao.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet resultSet = ps.executeQuery();
ArrayList<TbEmp> arrayList = new ArrayList<TbEmp>();
while (resultSet.next()) {
TbEmp tbEmp = new TbEmp();
tbEmp.setId(resultSet.getInt("id"));
tbEmp.setName(resultSet.getString("name"));
tbEmp.setGender(resultSet.getString("gender"));
tbEmp.setBirthday(resultSet.getString("birthday"));
tbEmp.setPhone(resultSet.getString("phone"));
arrayList.add(tbEmp);
}
if (arrayList.size() > 0) {
return arrayList;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
@Override
public int addEmp(TbEmp tbEmp) {
Connection connection = null;
try {
String sql = "insert into tb_emp(name,gender,birthday,phone) values(?,?,?,?)";
connection = (Connection) BaseDao.getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, tbEmp.getName());
ps.setString(2, tbEmp.getGender());
ps.setString(3, tbEmp.getBirthday());
ps.setString(4, tbEmp.getPhone());
int add = ps.executeUpdate();
if (add > 0) {
return add;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return 0;
}
@Override
public int updateEmp(TbEmp tbEmp) {
Connection connection = null;
try {
String sql = "update tb_emp set name='" + tbEmp.getName() + "',gender='" + tbEmp.getGender()
+ "',birthday='" + tbEmp.getBirthday() + "',phone='" + tbEmp.getPhone() + "' where id='"
+ tbEmp.getId() + "'";
System.out.println(sql);
connection = (Connection) BaseDao.getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
int update = ps.executeUpdate();
if (update > 0) {
return update;
}
} catch (Exception e) {
}
return 0;
}
@Override
public int del(int id) {
Connection connection = null;
String sql = null;
try {
sql = "delete from tb_emp where id=" + id;
connection = (Connection) BaseDao.getConnection();
PreparedStatement ps = connection.prepareStatement(sql);
int delUpdate = ps.executeUpdate();
if (delUpdate > 0) {
return delUpdate;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return 0;
}
}
controller
EmpController.java
package controller;
import java.util.List;
import entity.TbEmp;
import mapper.EmpMapper;
import service.EmpService;
public class EmpController {
EmpMapper empMapper=new EmpService();
public List<TbEmp> allInfoList(){
List<TbEmp> queryAll = empMapper.queryAll();
return queryAll;
}
//添加
public int addEmp(TbEmp tbEmp){
return empMapper.addEmp(tbEmp);
}
//更新
public int updataEmp(TbEmp tbEmp){
return empMapper.updateEmp(tbEmp);
}
//删除
public int delInfo(int id){
return empMapper.del(id);
}
}
servlet
EmpShowServlet.java
package servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import controller.EmpController;
import entity.TbEmp;
@WebServlet("/EmpShowServlet")
public class EmpShowServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public EmpShowServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
EmpController controller=new EmpController();
List<TbEmp> tbemp = controller.allInfoList();
HttpSession session = request.getSession();
session.setAttribute("empsList", tbemp);
request.getRequestDispatcher("main.jsp").forward(request, response);
}
}
AddEmpServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import controller.EmpController;
import entity.TbEmp;
@WebServlet("/AddEmpServlet")
public class AddEmpServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public AddEmpServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
EmpController controller = new EmpController();
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String birthday = request.getParameter("birthday");
String phone = request.getParameter("phone");
TbEmp emp = new TbEmp(0, name, gender, birthday, phone);
int addEmp = controller.addEmp(emp);
if (addEmp > 0) {
response.sendRedirect("EmpShowServlet");
}
}
}
DelServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import controller.EmpController;
@WebServlet("/DelServlet")
public class DelServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public DelServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
EmpController controller=new EmpController();
String id=request.getParameter("id");
int id1=Integer.parseInt(id);
int del = controller.delInfo(id1);
if (del>0) {
response.sendRedirect("EmpShowServlet");
}
}
}
UpdatEmpServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import controller.EmpController;
import entity.TbEmp;
@WebServlet("/UpdatEmpServlet")
public class UpdataEmpServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public UpdataEmpServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
EmpController controller=new EmpController();
Integer id= Integer.parseInt(request.getParameter("id").toString());
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String birthday = request.getParameter("birthday");
String phone = request.getParameter("phone");
TbEmp emp=new TbEmp(id,name,gender,birthday,phone);
System.out.println(emp.toString());
int updatEmp = controller.updataEmp(emp);
if (updatEmp>0) {
response.sendRedirect("EmpShowServlet");
}
}
}
4、HTML代码:
main.jsp
<%@page import="entity.TbEmp"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>慧心人力资源管理系统</title>
<style type="text/css">
body {
width: 100%;
}
.wrap_table {
width: 60%;
margin: 0 auto;
text-align: center;
}
table {
text-align: center;
margin: 0 auto;
}
table tr:nth-last-child(1) {
padding-right: 20px;
}
table th {
padding: 10px;
}
table:nth-last-child(2) tr:hover, table tr:hover a {
color: white;
background-color: black;
}
table:nth-last-child(1) tr {align ="left";
}
table:nth-last-child(1) td {
padding: 10px;
}
table:nth-last-child(2) td {
padding: 5px;
}
#end {
text-align: right;
}
#name {
margin-bottom: 10px;
}
#price {
margin-bottom: 10px;
}
#num {
margin-bottom: 10px;
}
#type {
margin-bottom: 10px;
}
</style>
</head>
<body >
<div class="wrap_table">
<table border="1" cellspacing="0" cellpadding="0" height="300px">
<caption align="top"
style="font-size: 1.6rem; height: 50px; font-weight: bold;">人力资源管理</caption>
<tr>
<th width="80">员工编号</th>
<th width="120">员工姓名</th>
<th width="80">员工性别</th>
<th width="140">员工生日</th>
<th width="140">员工手机</th>
<th width="120">操作</th>
</tr>
<%
List<TbEmp> empsList = (List<TbEmp>) session.getAttribute("empsList");
int i = 0;
%>
<c:forEach items="${empsList}" var="emp">
<tr>
<td>${emp.id }</td>
<td>${emp.name }</td>
<td>${emp.gender }</td>
<td>${emp.birthday }</td>
<td>${emp.phone }</td>
<td><input type="button" onclick="update(this)" class="updata"
value="更新" /> <input type="button" onclick="del(${emp.id })"
value="删除" /></td>
</tr>
</c:forEach>
<tr>
<td colspan="6" id="end"><span>共计<%=empsList.size() + 1%>条数据
</span> <a href="addEmp.jsp">新增</a></td>
</tr>
</table>
<div
style="width: 500px; height: 400px; border: 1px solid #000; background-color: white; display: none; position: absolute; left: 40%; top: 10%;"
id="UpdataDiv">
<form action="UpdatEmpServlet" method="post" id="UpdataForm">
<br /> <br />
<table border="1" cellspacing="0" cellpadding="0"
style="text-align: left;" width="400" height="200">
<caption align="top"
style="font-size: 1.6rem; height: 50px; font-weight: bold;">更新员工信息</caption>
<tr style="display: none">
<td><input type="text" name="id" id="id" value=""></td>
</tr>
<tr>
<td>员工姓名:<input type="text" name="name" id="name" value=""></td>
</tr>
<tr>
<td>员工性别:<input id="man" type="radio" name="gender" value="男" />男
<input id="woman" type="radio" name="gender" value="女">女
</td>
</tr>
<tr>
<td>员工生日:<input id="birthday" name="birthday" type="date"
value="" /></td>
</tr>
<tr>
<td>员工号码:<input type="text" name="phone" id="phone" value=""></td>
</tr>
<tr align="center">
<td><input type="submit" value="提交"> <input
type="button" value="取消" class="updata2"></td>
</tr>
</table>
</form>
</div>
</div>
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(".updata").click(function(){
$("#UpdataDiv").css("display","block");
});
$(".updata2").click(function(){
$("#UpdataDiv").css("display","none");
});
</script>
<script type="text/javascript">
function update(obj) {
var id=$(obj).parents("tr").children("td").eq(0).text();
var name=$(obj).parents("tr").children("td").eq(1).text();
var gender=$(obj).parents("tr").children("td").eq(2).text();
var birthday=$(obj).parents("tr").children("td").eq(3).text();
var phone=$(obj).parents("tr").children("td").eq(4).text();
document.getElementById("id").value = id;
document.getElementById("name").value = name;
if (gender=="男") {
document.getElementById("man").checked = true
}
if (gender=="女") {
document.getElementById("woman").checked = true
}
document.getElementById("birthday").value = birthday;
document.getElementById("phone").value = phone;
}
function del(id) {
if (confirm("确定删除该数据?")) {
window.location.href="DelServlet?id="+id;
}
}
function a(){
$.ajax({
url:"EmpShowServlet",//servlet文件的名称
type:"POST",
success:function(e){
alert("servlet调用成功!");
}
});
}
</script>
</body>
</html>
addEmp.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta charset="UTF-8">
<title>慧心人力资源管理系统-添加员工信息</title>
<style type="text/css">
body {
width: 100%;
}
.wrap_table {
width: 40%;
margin: 0 auto;
text-align: center;
}
table {
text-align: left;
margin: 0 auto;
height: 200px;
width: 400px;
}
table td {
padding: 10px;
}
.button_class input {
padding: 3px 10px;
}
</style>
</head>
<body>
<div class="wrap_table">
<form action="AddEmpServlet" method="post">
<table border="1" cellspacing="0" cellpadding="0">
<caption align="top"
style="font-size: 1.6rem; height: 50px; font-weight: bold;">添加员工信息</caption>
<tr>
<td>员工姓名:</td>
<td><input type="text" name="name" id="name" value="" /></td>
</tr>
<tr>
<td>性别:</td>
<td><input id="man" type="radio" checked="checked"
name="gender" value="男" />男 <input id="woman" type="radio"
name="gender" / value="女">女</td>
</tr>
<tr>
<td>员工生日:</td>
<td><input id="birthday" name="birthday" type="date" value="" />
</tr>
<tr>
<td>员工手机:</td>
<td><input type="text" name="phone" id="" value="" /></td>
</tr>
<tr>
<td colspan="2" align="center" class="button_class"><input
type="submit" name="" id="" value="添加" /> <input type="reset"
name="" id="" value="重置" /></td>
</tr>
</table>
</form>
</div>
</body>
</html>
Java Web项目 慧心人力资源管理系统的更多相关文章
- 第一个Java web项目:员工管理系统
要求: 做一个登陆页面,实现登录,用户名和密码都是admin,登录成功后,用session记录用户名,登录失败,请提示失败原因. 做一个简单的管理系统,实现注册,修改,查询,删除 员工的功能,注册内容 ...
- java web 项目 图书管理系统的设计与实现
java web 项目 图书管理系统的设计与实现
- web项目_学生证管理系统
项目简述: 基于java web实现学生卡管理系统,用户包括学生和学生处,分别实现以下功能. 学生: 1.对本人登录密码的修改 2.申请补办学生卡 3.查看学生卡补办状态 学生处: 1.对学生信息的管 ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 怎么将java web 项目导入idea 中
1.将 java web 项目导 入idea 中, 显示 然后进行 Configure 配置. 2. 点击 open module settings. 3. 4. 选择jar包. 5. 6. 配置to ...
- 在cmd命令行使用Maven Archetype插件 generate命令创建简单的java web项目
前提: 1.下载apache-maven:https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache ...
- Java Web项目报错java.lang.NullPointerException at org.apache.jsp.front.index_jsp._jspInit(index_jsp.java:30)
环境:myeclipse+tomcat6+jdk6 今天搭建了一个Java Web项目,访问index.jsp时报如下错误: 严重: Servlet.service() for servlet jsp ...
- 使用Spring Boot来加速Java web项目的开发
我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用 ...
- Linux(Centos)之安装tomcat并且部署Java Web项目
1.准备工作 a.下载tomcat linux的包,地址:http://tomcat.apache.org/download-80.cgi,我们下载的版本是8.0,下载方式如图: b ...
随机推荐
- LeetCode398-随机数索引
原题链接:[398. 随机数索引]:https://leetcode-cn.com/problems/random-pick-index/ 题目描述: 给定一个可能含有重复元素的整数数组,要求随机输出 ...
- Vue 之keep-alive的使用,实现页面缓存
什么是keep-alive 有时候我们不希望组件被重新渲染影响使用体验: 或者处于性能考虑,避免多次重复渲染降低性能.而是希望组件可以缓存下来,维持当前的状态.这时候就需要用到keep-alive组件 ...
- swift 实现QQ好友列表功能
最近项目中有类似QQ好友列表功能,整理了一下,话不多说,直接上代码 import UIKit class QQFriend: NSObject { var name: String? var intr ...
- 转 MessageDigest来实现数据加密
转自 https://www.cnblogs.com/androidsuperman/p/10296668.html MessageDigest MessageDigest 类为应用程序提供信息摘要算 ...
- swift设置导航栏item颜色和状态栏颜色
//swift设置导航栏item颜色和状态栏颜色 let dict:Dictionary =[NSForegroundColorAttributeName:UIColor.hrgb("333 ...
- RPC 框架
RPC 谁能用通俗的语言解释一下什么是 RPC 框架? - 远程过程调用协议RPC(Remote Procedure Call Protocol) RPC就是要像调用本地的函数一样去调远程函数. 推荐 ...
- 【力扣】95. 不同的二叉搜索树 II
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的 ...
- java 整型
byte(1字节).short(2字节).int(4字节).long(16字节) java中前缀加上0b或者0B就可以写二进制数,前缀加上0就可以写八进制数,前缀加上0x或者0X就可以写十六进制数 一 ...
- 【HarmonyOS】【xml】使用xml绘制视频播放控制栏
本文记录HarmonyOS使用xml绘制视频播放控制栏 效果图如下 代码如下 点击查看代码 <?xml version="1.0" encoding="utf-8& ...
- minikube metrics-server HPA 自动扩缩容错误
minikube metrics-server pod 错误 启动 minikube addons enable metrics-server 之后查看 metrics-server pod 会有如下 ...