java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查)

2023-11-19

学生信息管理1.0
涉及的知识点:三层架构理论
简单理解三层架构就是,上层调用下层,下层为上层提供服务。
最上层(视图层):由jsp+servlet组成
中间层(服务层):组装数据访问层所实现的功能
最下层(数据访问层):实现单一得某项功能,为服务层提供服务
实体类是作为三层架构传数据的参数。

应用实例:运用三层架构实现对学生信息得增删改查

项目目录结构图
在这里插入图片描述
1.需要用到的数据库与数据表

create database test;
use test;
drop table if exists student;
create table student(
	s_id int not null primary key,
	s_name varchar(20),
	s_age int,
	s_address varchar(20)
)
select * from student;

delete  from student where s_id=11;

insert into student (s_id,s_name,s_age,s_address) values(11,'zs','21','jx');

update student set s_name='欧文',s_age=29,s_address='布鲁克林' where s_id=11;

select * from student where s_id=11;

数据表结构图
在这里插入图片描述

2.导入数据库驱动包目录WebContent下的WEB-INF的lib文件夹中,选中改jar包:右键build path—>点击add build path

3.在WebContent目录下新建实现增删改查的jsp页面(一个jsp页面对应一个servlet)

studentsystem.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="addstudent.jsp">增加学生信息</a><br>
	<a href="deletestudent.jsp">删除学生信息</a><br>
	<a href="updatestudent.jsp">修改学生信息</a><br>
	<a href="querystudentbysno.jsp">查询单个学生信息</a><br>
	<a href="queryallstudent.jsp">查询所有学生信息</a><br>
</body>
</html>

addstudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 将该表单数据传递到StudentServlet处理 -->
	<form action="AddStudentServlet" method="post">
		学号:<input type="text" name="sid"><br>
		姓名:<input type="text" name="sname"><br>
		年龄:<input type="text" name="sage"><br>
		地址:<input type="text" name="saddress"><br>
		<input type="submit" value="增加学生">
	</form>
</body>
</html>

deletestudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="DeleteStudentServlet" method="post">
	输入你要删除学生信息的学号:<br>
	<input type="text" name="sid"><br>
	<input type="submit" value="删除学生">
</form>
</body>
</html>

updatestudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="UpdateStudentServlet" method="post">
	输入你要修改学生信息:<br>
	学号:<input type="text" name="sid"><br>
	姓名:<input type="text" name="sname"><br>
	年龄:<input type="text" name="sage"><br>
	地址:<input type="text" name="saddress"><br>
	<input type="submit" value="修改学生">
</form>
</body>
</html>

querystudentbysno.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="QueryStudentBySnoServlet" method="post">
		请输入你要查询学生信息的学号:<br>
		<input type="text" name="sid"><br>
		<input type="submit" value="查询单个学生信息">
	</form>
</body>
</html>

queryallstudent.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="QueryAllStudentServlet" method="post">
		<input type="submit" value="查询所有学生信息">
	</form>
</body>
</html>

4.在src目录下新建包com.xiaochen.entity,在该包内新建实体类Student作为三层架构中传数据的参数

student.java

package com.xiaochen.entity;

public class Student {
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]";
	}
	private int id;
	private String name;
	private int age;
	private String address;
	public Student() {
		
	}
	public Student(String name, int age, String address) {
		super();
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public Student(int id, String name, int age, String address) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
}

5.在src目录下新建包com.xiaochen.servlet,在该包内新建与增删改查等jsp页面对应的servlet

AddStudentServlet.java

package com.xiaochen.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 com.xiaochen.entity.Student;
import com.xiaochen.service.StudentService;

@WebServlet("/AddStudentServlet")
public class AddStudentServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
		// 设置统一编码格式
		request.setCharacterEncoding("utf-8");
		// 接收jsp页面传来的表单数据
		int id = Integer.parseInt(request.getParameter("sid"));
		String name = request.getParameter("sname");
		int age = Integer.parseInt(request.getParameter("sage"));
		String address = request.getParameter("saddress");
		// 将接收的数据封装成一个实体类(即封装数据的javabean)
		Student student = new Student(id, name, age, address);
		// 操作service层来实现增加学生信息的功能
		StudentService studentservice = new StudentService();
		boolean result = studentservice.addStudent(student);
		response.setCharacterEncoding("GBK");
		if (result != false) {
			response.getWriter().println("增加成功!");
		} else {
			response.getWriter().println("增加失败!");
		}
	}

}

DeleteStudentServlet.java

package com.xiaochen.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 com.xiaochen.entity.Student;
import com.xiaochen.service.StudentService;

@WebServlet("/DeleteStudentServlet")
public class DeleteStudentServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
		// 设置统一编码格式
		request.setCharacterEncoding("utf-8");
		// 接收jsp页面传来的表单数据
		int id = Integer.parseInt(request.getParameter("sid"));
		// 操作service层来实现删除学生信息的功能
		StudentService studentservice = new StudentService();
		boolean result = studentservice.deleteStudent(id);
		response.setCharacterEncoding("GBK");
		if (result != false) {
			response.getWriter().println("删除成功!");
		} else {
			response.getWriter().println("删除失败!");
		}
	}

}

UpdateStudentServlet.java

package com.xiaochen.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 com.xiaochen.entity.Student;
import com.xiaochen.service.StudentService;

@WebServlet("/UpdateStudentServlet")
public class UpdateStudentServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
		// 设置统一编码格式
		request.setCharacterEncoding("utf-8");
		// 接收jsp页面传来的表单数据
		int sno = Integer.parseInt(request.getParameter("sid"));
		String name=request.getParameter("sname");
		int age=Integer.parseInt(request.getParameter("sage"));
		String address=request.getParameter("saddress");
		//将修改信息封装到学生实体类
		Student student=new Student(name,age,address);
		//操作service层来实现修改学生信息的功能
		StudentService studentservice = new StudentService();
		boolean result = studentservice.updateStudent(sno,student);
		response.setCharacterEncoding("GBK");
		if (result != false) {
			response.getWriter().println("修改成功!");
		} else {
			response.getWriter().println("修改失败!");
		}
	}

}

QueryStudentBySnoServlet.java

package com.xiaochen.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 com.xiaochen.entity.Student;
import com.xiaochen.service.StudentService;

/**
 * Servlet implementation class QueryStudentBySnoServlet
 */
@WebServlet("/QueryStudentBySnoServlet")
public class QueryStudentBySnoServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
		// 设置统一编码格式
		request.setCharacterEncoding("utf-8");
		// 接收jsp页面传来的表单数据
		int sno = Integer.parseInt(request.getParameter("sid"));
		//操作service层来实现查询学生信息的功能
		StudentService studentservice = new StudentService();
		Student student=studentservice.queryStudentBySno(sno);
		response.setCharacterEncoding("GBK");
		//将学生信息打印出来
		response.getWriter().println("学号:"+student.getId());
		response.getWriter().println("姓名:"+student.getName());
		response.getWriter().println("年龄:"+student.getAge());
		response.getWriter().println("地址:"+student.getAddress());
		
	}

}

QueryAllStudentServlet.java

package com.xiaochen.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 com.xiaochen.entity.Student;
import com.xiaochen.service.StudentService;

@WebServlet("/QueryAllStudentServlet")
public class QueryAllStudentServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
		// 设置统一编码格式
		request.setCharacterEncoding("utf-8");
		//操作service层来实现查询所有学生信息的功能
		StudentService studentservice = new StudentService();
		List<Student> students = studentservice.queryAllStudent();
		response.setCharacterEncoding("GBK");
		// 将学生信息打印出来
		response.getWriter().println(students.toString());
	}

}

6.在src目录下新建包com.xiaochen.service,在该包新建类StudentService实现逻辑性的增删改查

StudentService.java

package com.xiaochen.service;

import java.util.List;

import com.xiaochen.dao.StudentDao;
import com.xiaochen.entity.Student;
//业务逻辑层:逻辑的增删改查(增:查+增),对dao层进行了组装
public class StudentService {
	StudentDao studentdao=new StudentDao();
	//增加学生:(增=查+增)
	public boolean addStudent(Student student) {
		if(!studentdao.isExist(student.getId())) {//判断该学生是否存在
			//不存在则增加
			studentdao.addStudent(student);
			return true;
		}else {
			//存在则打印
			System.out.println("此人已存在!");
			return false;
		}
	}
	//删除学生:(删=查+删)
	public boolean deleteStudent(int sno) {
		if(!studentdao.isExist(sno)) {//判断该学生是否存在
			//不存在则删除失败
			System.out.println("删除失败!");
			return false;
		}else {
			//存在则删除该学生
			studentdao.deleteStudent(sno);
			return true;
		}
	}
	//修改学生:(改=查+删)
	public boolean updateStudent(int sno,Student student) {
		if(!studentdao.isExist(sno)) {//判断该学生是否存在
			//不存在则修改失败
			System.out.println("修改失败!");
			return false;
		}else {
			//存在则修改该学生
			studentdao.updateStudent(sno,student);
			return true;
		}
	}
	//查询学生:(查询单个学生)
	public Student queryStudentBySno(int sno) {
		return studentdao.queryStudentBySno(sno);
	}
	//查询所有学生信息:
	public List<Student> queryAllStudent() {
		return studentdao.queryAllStudent();	
	}
}

7.在src目录下新建包com.xiaochen.dao,在该包新建类StudentDao实现原子性的增删改查

StudentDao.java

package com.xiaochen.dao;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import com.xiaochen.entity.Student;

//此类中的增删改查方法都是原子性的,须将其传递到service进行组装
//以此来实现逻辑性的增删改查
public class StudentDao {
	private static final String DRIVER="com.mysql.jdbc.Driver";
	private static final String URL="jdbc:mysql://localhost:3306/test";
	private static final String NAME="root";
	private static final String PWD="123abc";
	Connection con=null;
	PreparedStatement pstmt=null;
	ResultSet rs=null;
	int count=-1;
	/* 
	 * 判断学生是否存在
	调用通过学号查询学生方法来判断
	*/
	//通过学号判断该学生是否存在
	public boolean isExist(int sno) {
		return queryStudentBySno(sno)==null?false:true;
	}
	/*增加学生信息功能
	 * return true:增加成功
	 * return false:系统异常,增加失败
	 */
	//通过实体类传参来增加学生
	public boolean addStudent(Student student) {
		try {
			//加载具体的驱动类
			Class.forName(DRIVER);
			//连接数据库
			con=DriverManager.getConnection(URL,NAME,PWD);
			//获取操作数据库对象
			String sql="insert into student (s_id,s_name,s_age,s_address) values(?,?,?,?)";
			pstmt=con.prepareStatement(sql);
			//给占位符赋值
			pstmt.setInt(1, student.getId());
			pstmt.setString(2, student.getName());
			pstmt.setInt(3, student.getAge());
			pstmt.setString(4, student.getAddress());
			//操作数据库
			count=pstmt.executeUpdate();
			//判断是否添加成功
			if(count>0)
				return true;
			else
				return false;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return false;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}catch (Exception e) {
			e.printStackTrace();
			return false;
		}finally {
				try {
					if(rs!=null) rs.close();
					if(pstmt!=null) pstmt.close();
					if(con!=null) con.close();
				} catch (SQLException e) {
					e.printStackTrace();
					return false;
				}catch (Exception e) {
					e.printStackTrace();
					return false;
				}
		}
	}
	/*删除学生功能信息
	 * return true:删除成功
	 * return false:系统异常,删除失败
	 */
	//根据学号删除学生信息
	public boolean deleteStudent(int sno) {
		try {
			//加载具体的驱动类
			Class.forName(DRIVER);
			//连接数据库
			con=DriverManager.getConnection(URL,NAME,PWD);
			//获取操作数据库对象
			String sql="delete  from student where s_id=?";
			pstmt=con.prepareStatement(sql);
			//给占位符赋值
			pstmt.setInt(1, sno);
			//操作数据库
			count=pstmt.executeUpdate();
			//判断是否删除成功
			if(count>0)
				return true;
			else
				return false;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return false;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}catch (Exception e) {
			e.printStackTrace();
			return false;
		}finally {
				try {
					if(rs!=null) rs.close();
					if(pstmt!=null) pstmt.close();
					if(con!=null) con.close();
				} catch (SQLException e) {
					e.printStackTrace();
					return false;
				}catch (Exception e) {
					e.printStackTrace();
					return false;
				}
		}
	}
	/*修改学生信息
	 * return true:修改成功
	 * return false:系统异常,修改失败
	 */
	//根据学号修改学生信息
	public boolean updateStudent(int sno,Student student) {
		try {
			//加载具体的驱动类
			Class.forName(DRIVER);
			//连接数据库
			con=DriverManager.getConnection(URL,NAME,PWD);
			//获取操作数据库对象
			String sql="update student set s_name=?,s_age=?,s_address=? where s_id=?";
			pstmt=con.prepareStatement(sql);
			//给占位符赋值
			pstmt.setString(1, student.getName());
			pstmt.setInt(2, student.getAge());
			pstmt.setString(3, student.getAddress());
			pstmt.setInt(4, sno);
			//操作数据库
			count=pstmt.executeUpdate();
			//判断是否修改成功
			if(count>0)
				return true;
			else
				return false;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return false;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}catch (Exception e) {
			e.printStackTrace();
			return false;
		}finally {
				try {
					if(rs!=null) rs.close();
					if(pstmt!=null) pstmt.close();
					if(con!=null) con.close();
				} catch (SQLException e) {
					e.printStackTrace();
					return false;
				}catch (Exception e) {
					e.printStackTrace();
					return false;
				}
		}
	}
	/*
	 * 查询单个学生
	 * 查询学生是否存在:通过学号查询
	return student:查询成功,返回该学生信息
	return null:查询失败,系统异常,返回null
	*/
	//通过学号来查询单个学生的信息
	public Student queryStudentBySno(int sno) {
		Student student=null;
		try {
			//加载具体的驱动类
			Class.forName(DRIVER);
			//连接数据库
			con=DriverManager.getConnection(URL,NAME,PWD);
			//获取操作数据库对象
			String sql="select * from student where s_id=?";
			pstmt=con.prepareStatement(sql);
			//给占位符赋值
			pstmt.setInt(1, sno);
			//返回结果集
			rs=pstmt.executeQuery();
			while(rs.next()!=false) {
				//若查询单个学生成功,将其数据封装到Student实体类
				int id=rs.getInt("s_id");
				String name=rs.getString("s_name");
				int age=rs.getInt("s_age");
				String address=rs.getString("s_address");
				student=new Student(id,name,age,address);
				return student;
			}
			return student;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return null;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}catch (Exception e) {
			e.printStackTrace();
			return null;
		}finally {
				try {
					if(rs!=null) rs.close();
					if(pstmt!=null) pstmt.close();
					if(con!=null) con.close();
				} catch (SQLException e) {
					e.printStackTrace();
					return null;
				}catch (Exception e) {
					e.printStackTrace();
					return null;
				}
		}	
	}
	/*
	 * 查询所有学生信息
	 * 将所有学生信息存到list中
	*/
	//将所有学生信息存到List来将其输出
	public List<Student> queryAllStudent() {
		List<Student> students=new ArrayList<>();
		Student student=null;
		try {
			//加载具体的驱动类
			Class.forName(DRIVER);
			//连接数据库
			con=DriverManager.getConnection(URL,NAME,PWD);
			//获取操作数据库对象
			String sql="select * from student";
			pstmt=con.prepareStatement(sql);
			//返回结果集
			rs=pstmt.executeQuery();
			while(rs.next()!=false) {
				//若查询学生成功,将其数据封装到Student实体类
				int id=rs.getInt("s_id");
				String name=rs.getString("s_name");
				int age=rs.getInt("s_age");
				String address=rs.getString("s_address");
				student=new Student(id,name,age,address);
				//将查询出来的学生信息加入到list集合
				students.add(student);
			}
			return students;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}catch (Exception e) {
			e.printStackTrace();
		}finally {
				try {
					if(rs!=null) rs.close();
					if(pstmt!=null) pstmt.close();
					if(con!=null) con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}catch (Exception e) {
					e.printStackTrace();
				}
		}
		return null;	
	}
	
	
}

运行结果图
在这里插入图片描述

增加学生
在这里插入图片描述
在这里插入图片描述
查询单个学生
在这里插入图片描述
在这里插入图片描述
查询所有学生信息
在这里插入图片描述
在这里插入图片描述
修改学生信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除学生信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查) 的相关文章

随机推荐

  • 数学倒底有没有绝对的严格性和形式化?

    我对数学的理解只停留在大学里的高等代数和微积分 而且毕业后的这 8 年也已经遗忘得差不多了 最近在研究算法 又不得不拾遗和学习一些数学知识 今天这篇文章 希望和大家讨论一个问题 数学到底是否具有绝对的严格性和形式化 恕我愚钝 这个问题让我有
  • ubutun-需要运行NetworkManager

    问题描述 Ubuntu虚拟机没有网络连接 报需要运行NetworkManager 解决方法 root 用户下运行 systemctl start NetworkManager service 原因 不知道 欢迎补充
  • 最大似然估计(ML)

    1 说明 最大似然估计 Maximum Likelihood Estimation ML 是一种在给定观察数据情况下 来评估模型参数的算法 它属于一种统计方法 用来求一个样本集的相关概率密度函数的参数 例如 统计全校人口的身高 我们已知身高
  • boost多边形交集、并集

    交集 http www boost org doc libs 1 56 0 libs geometry doc html geometry reference algorithms intersection html 并集 http www
  • STM32技巧: Keil错误提示“ File Not Found”

    1 文件已添加到工程目录但提示 file not found 原因 仅添加到目录但未包含编译文件的路径 解决 Option gt C C gt Include Paths 添加提示缺失的文件所在路径 错误提示消失
  • vcs -xprop的理解

    一 vcs xprop简介 https www synopsys com zh cn verification simulation vcs xprop html Verilog 和 VHDL 常用于数字设计建模 设计人员使用 RTL 构造
  • 如何在 swgger 中设置连接前后端的 API 接口

    在的网站大多都是前后端分离式的开发 前后端都衍生出了自己的框架 现在前后端交互的唯一方式就是 API 接口 曾经前后端交互都需要后端人员手动编写 API 接口文档 规定路径 请求方式 返回类型 这样效率很低 swagger 就是更好地书写
  • 基于Python和笛卡尔遗传规划(Cartesian Genetic Programming, CGP),对柔性车间调度问题FJSP求解

    前言 实习阶段在研究柔性车间调度 即 Flexible Job shop Scheduling Problem FJSP 的问题 公司的前辈已经使用了很多方法实现了对复杂的实际调度问题进行求解 我做的部分主要是在公开数据集上 尝试用遗传规划
  • uniapp 路由不要显示#

    在Uniapp中 路由默认使用的是hash模式 即在URL中添加 符号 如果你不想在URL中显示 可以切换为使用history模式 要在Uniapp中使用history模式 可以按照以下步骤进行操作 打开manifest json文件 在
  • 2022深圳福田区专精特新小巨人企业申报条件,补贴50万

    深圳福田区专精特新小巨人企业申报后 可获得50万补贴 需要申报认证及补贴的企业 在中华人民共和国境内工商注册登记 连续经营3年以上并具有独立法人资格的中小企业 想要申报的企业 都需要在了解规则条件的基础上才能提前做好准备 用华夏泰科进行便捷
  • 华为OD机试 - 统计射击比赛成绩(Java)

    题目描述 给定一个射击比赛成绩单 包含多个选手若干次射击的成绩分数 请对每个选手按其最高3个分数之和进行降序排名 输出降序排名后的选手ID序列 条件如下 一个选手可以有多个射击成绩的分数 且次序不固定 如果一个选手成绩少于3个 则认为选手的
  • C语言中 error: expected ‘;‘, ‘,‘ or ‘)‘ before ‘&‘ token 解决方法

    问题描述 近期发现包括我在内的很多同学在用DEV C 编译的时候会出现 error expected or before token 这个如下图的错误提示 很多同学很不解 和其他人比较代码后 明明就没有错呀 为什么呢 经过查找相关资料 其实
  • 机器学习——高斯过程

    高斯过程 所谓高斯 即高斯分布 所谓过程 即随机过程 高斯分布 一维高斯 p x N
  • MATLAB代码:考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型

    MATLAB代码 考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型 关键词 碳捕集 综合能源系统 电转气P2G 热电联产 低碳调度 参考文档 Modeling and Optimization of Combined Heat an
  • 魅族7.0系统手机最简单激活Xposed框架的流程

    对于喜欢研究手机的朋友而言 常常会使用到XPOSED框架及种类繁多功能极强的模块 对于5 0以下的系统版本 只要手机能获得root权限 安装和激活XPOSED框架是异常轻易的 但随着系统版本的不断迭代 5 0以后的系统 激活XPOSED框架
  • Xray和burpsuite联动被动扫描

    想挖点src又没啥思路 试着挂个自动漏扫工具xray 又看到能与burp联动实现自动扫就想尝试一下 搞好进自己网站测试了一下 的确是爬虫式漏扫 访问量属实大 不过自己设置设置还是一个很不错的工具 安装配置 是在ddosi org这里找的破解
  • 经典问题(20)天平与砝码问题

    题目 如果有砝码序列 1 3 9 27 81 243 729 我们至少可以称量1000以内的所有整数重量 比如 5 9 3 1 即 9 放入对侧盘 3 1 放入同侧盘 再比如 19 27 9 1 编程的目标是 给定一个重量 求 天平称重时
  • Acwing-4729. 解密

    如果dt小于0 或者r不是整数 或者m r是奇数的话 m 2 与 m 2 的奇偶性相同 那么方程无解 输出NO include
  • 三进制计算机基本原理,三进制(三进制计算机)

    如题 越详细越好 最好再举个例子 十进制转任何进制都是采用整数除n取余倒序排列 小数乘n取整顺序排列的方法 比如 32 12 转 三进制 整数部分 32除以3商10余210除以3商3余13除以3商1余01除以3商 十进制数换三进制短除三 三
  • java_web:基于三层架构实现学生信息管理1.0(对学生信息的增删改查)

    学生信息管理1 0 涉及的知识点 三层架构理论 简单理解三层架构就是 上层调用下层 下层为上层提供服务 最上层 视图层 由jsp servlet组成 中间层 服务层 组装数据访问层所实现的功能 最下层 数据访问层 实现单一得某项功能 为服务