实现数据库增删改产+界面效果2-----jsp

news2024/11/15 16:53:19

任务

1.通过连接数据库完成用户登录模块。
2.登录成功后查询出一张数据库表中的内容;登录不成功返回登录页面。
3.登录页面端要有空值和非法字符验证。
4.登录成功后对一张表中数据进行增加、删除、修改和查询操作。

代码

数据库相关代码

创建数据库

名字为jdbcHomework,字符编码为utf8
在这里插入图片描述

数据库创建表

学生表

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `Sid` char(11) CHARACTER SET utf8 NOT NULL,
  `Sname` char(50) CHARACTER SET utf8 DEFAULT NULL,
  `Ssex` char(2) CHARACTER SET utf8 DEFAULT NULL,
  `Sclass` char(50) CHARACTER SET utf8 DEFAULT NULL,
  `Syuanxi` char(50) CHARACTER SET utf8 DEFAULT NULL,
  PRIMARY KEY (`Sid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='jdbc作业';

用户表

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `Userid` char(11) NOT NULL,
  `Username` char(50) DEFAULT NULL,
  `Userpwd` varchar(12) DEFAULT NULL,
  PRIMARY KEY (`Userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='jdbc作业';

数据库的表中插入数据

学生表

INSERT INTO `student` VALUES ('20221104122', '李静静', '女', '计科(专升本)1班', '计算机');
INSERT INTO `student` VALUES ('20221104204', '柯柯', '女', '计科(专升本)2班', '计算机');
INSERT INTO `student` VALUES ('20221104250', 'zyp', '男', '自动化1班', '自动化');

用户表

INSERT INTO `user` VALUES ('20221104122', '洛可可', '666666');
INSERT INTO `user` VALUES ('root', '洛可可', 'root');

myeclipse中代码

src的jdbcHomework包中的代码

功能:连接数据库

1.LinkMysql.java为连接mysql的代码,包括驱动、密码、url,用于登录界面、登录检查、增删改查的后台处理
2.ConnectionFactory.java为为连接mysql的代码,包括驱动、密码、url,用于登录成功后界面linkMysql.jsp连接数据库
3.本次学习时上面类使用方法是通过javaBean的id获取链接,从而连接到数据库;下面类使用方法是通过在开头导入该类,代码中新建类并用 “新建的类名.getConnection();” 方法获取链接,从而连接到数据库

1.LinkMysql

package jdbcHomework;
import java.sql.*;


public class LinkMysql {
	 //驱动程序
    private String driverName = "com.mysql.jdbc.Driver";
    //设置数据库连接URL
    private String url = "jdbc:mysql://localhost:3306/jdbcHomework?useUnicode=true&characterEncoding=utf-8";
    private String user = "root";//数据库登录用户名
    private String password = "root";//数据库登录密码 
	public String getDriverName() {
		return driverName;
	}
	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public String getUser() {
		return user;
	}
	public void setUser(String user) {
		this.user = user;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	 public Connection getConnection() {
	        try {
	            Class.forName(driverName);
	            return DriverManager.getConnection(url, user, password);
	        } catch (Exception e) {
	            //e.printStackTrace();
	            System.out.println("驱动异常");
	            return null;
	        }
	    }  



}

2.ConnectionFactory

package jdbcHomework;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
	private String driverClassName = "com.mysql.jdbc.Driver"; 
	  private String url = "jdbc:mysql://localhost:3306/jdbcHomework?useUnicode=true&characterEncoding=utf-8"; 
	  private String userName = "root"; 
	  private String password = "root"; 
	  /* 
	  private static ConnectionFactory connectionFactory=null; 
	  
	  
	  private ConnectionFactory() { 
		  try {
			Class.forName(driverClassName);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	  }
	  public ConnectionFactory(){
		  
	  }
	 */
	  public Connection getConnection() throws SQLException 
	  { 
		  try {
				Class.forName(driverClassName);
			} catch (ClassNotFoundException e) {
				// TODO Auto-generated catch block
				//e.printStackTrace();
				System.out.println("驱动异常");
			} 
		  return DriverManager.getConnection(url, userName, password); 
	  }
	  /*
	  public static ConnectionFactory getInstance() 
	  {  
		  if (null==connectionFactory) { 
		      connectionFactory=new ConnectionFactory(); 
		    } 
		    return connectionFactory;
	  }
	  */
	  

}

WebRoot/jdbcHomework下的代码

1.登录主界面代码

login.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登录页面</title>
    
	 <script type="text/javascript">
        function checkForm() {
            var id = document.forms["form1"]["id"].value;
            var name = document.forms["form1"]["name"].value;
            var pwd = document.forms["form1"]["pwd"].value;

            // 检查是否为空值
            if (id === "" || name === "" || pwd === "") {
                alert("请输入完整的信息");
                return false;
            }

            // 检查是否包含非法字符
            var illegalChars = /[^\w\s]/;
            if (illegalChars.test(id) || illegalChars.test(pwd)) {
                alert("输入包含非法字符");
                return false;
            }

            return true;
        }
    </script>

  </head>
  <%-- 用于首次登录 --%>
  <body bgcolor="pink">
  	<div class="top" align="center">
  		 <h1>欢迎来到洛可可学生管理系统!!</h1>
  	</div>
  
	<br>
  
    <div class="center" align="center">
   		<form name="form1" action="/myFirstTest/jdbcHomework/logincheck.jsp" method="post" " οnsubmit="return checkForm();">
	    	<table border="1" bgcolor="rgb(248, 169, 182)">
		    
			    <tr>
			    	<td>学号:</td>
			    	<td><input type="text" name="id" ></td>
			    </tr>
			    <tr>
			    	<td>姓名:</td>
			    	<td><input type="text" name="name" ></td>
			    </tr>
			    <tr>
			    	<td>密码:</td>
			    	<td width="50"><input type="password" name="pwd"></td>
			    </tr>
			    <tr >
			    	<td colspan="2" align="center">
			    		<input type="submit" value="登录"/>
			    		<input type="reset"/>
			    	
			    	</td>
			    </tr>
	    	</table>
	    </form>
   </div>
   
   <div class="bottom" align="center">
   
   </div>
   
  </body>
</html>

2.登录检查代码

logincheck.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登录检查</title>
  </head>
  
  <body>
  <jsp:useBean id="link" class="jdbcHomework.LinkMysql"></jsp:useBean>
    <%
    	/*获取到login.jsp页面登录时学生的学号、姓名、密码*/
    	request.setCharacterEncoding("utf-8");
    	String studentId = request.getParameter("id");	
    	String studentName = request.getParameter("name");	
    	String pwd = request.getParameter("pwd");	
    	System.out.println("学号:"+studentId+",姓名:"+studentName+",密码:"+pwd);	//控制台输出获取到的登录时学生的学号、姓名、密码
    	
    	
    	/*连接数据库并执行相关操作*/
       Connection con=null;
       PreparedStatement ps=null;
       ResultSet rs=null; 
       con = link.getConnection();  
       
       String sql="select * from user where Userid=? and Username=? and Userpwd=?";
       ps=con.prepareStatement(sql);
       ps.setString(1,studentId);
       ps.setString(2, studentName);
       ps.setString(3,pwd);       
       rs=ps.executeQuery();
       
       if(rs.next()){ 
	       System.out.println("登录成功!");      	
	       //response.sendRedirect("/myFirstTest/jdbcHomework/linkMysql.jsp");
	        out.print("<script type='text/javascript'> alert('登陆成功!!');window.location='/myFirstTest/jdbcHomework/linkMysql.jsp';</script>");
      
       }
       else{ 
	       System.out.println("登录失败!");      
	       //response.sendRedirect("/myFirstTest/jdbcHomework/login.jsp");
	       out.print("<script type='text/javascript'> alert('登陆失败,请重新登录!!');window.location='/myFirstTest/jdbcHomework/login.jsp';</script>");
	         
       }
        rs.close();
        ps.close();
        con.close();
       
	%>                         
  </body>
</html>

3.登录成功页面代码

linkMysql.jsp

<%@ page language="java" import="java.util.*, java.sql.*,jdbcHomework.ConnectionFactory" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
		<title>登录成功页面</title>
  </head>
  <%-- 在浏览器上显示所有学生信息 --%>
  <body bgcolor="pink">
  		<div class="top" align="center" >
  			<h1>欢迎加入到洛可可学生管理系统</h1>
  		</div>
  
	   <div class="center" align="center">

	        <table border="1" bgcolor="rgb(248, 169, 182)"  align="center">
	            <tr>
	                <th width="87" align="center">学号</th>
	                <th width="87" align="center">姓名</th>
	                <th width="87" align="center">性别</th>
	                <th width="87" align="center">班级</th>
	                <th width="87" align="center">院系</th>
	               <th width="87" align="center">操作</th>
	            </tr>
	            <% 
	            	
	                Connection con= null;
	                Statement stmt=null;
	                ResultSet rs=null;
	                //Class.forName("com.mysql.jdbc.Driver");
	                /*3306为端口号,student为数据库名,url后面加的?useUnicode=true&characterEncoding=gbk是为了处理向数据库中添加数据时出现乱码的问题。*/
	                //String url="jdbc:mysql://localhost:3306/jdbcHomework?useUnicode=true&characterEncoding=utf-8";
	                //con=DriverManager.getConnection(url,"root","root");
	                ConnectionFactory cf = new ConnectionFactory();
	                con = cf.getConnection();
	                
	                stmt=con.createStatement();
	                String sql="select * from student";
	                rs=stmt.executeQuery(sql);
	              
	                while(rs.next()){
	            %>                         
	           <tr>
	               <td><%=rs.getString("Sid")%></td>
	               <td><%=rs.getString("Sname")%></td>
	               <td><%=rs.getString("Ssex")%></td>
	               <td><%=rs.getString("Sclass")%></td>
	               <td><%=rs.getString("Syuanxi")%></td> 
	               <td><a href="/myFirstTest/jdbcHomework/deleteStu.jsp?Sid=<%=rs.getString("Sid")%>">删除</a>   
	               <a href="/myFirstTest/jdbcHomework/updateStu.jsp?Sid=<%=rs.getString("Sid")%>">修改</a></td>  
	                                 
	           </tr>
	          
	           
	            <%}
	                rs.close();
	                stmt.close();
	                con.close();
	                
	            %>
	          
	       </table>
    	</div>
    	
    	<br>
    	<div class="bottom" align="center">
    		<a href="/myFirstTest/jdbcHomework/add.jsp">添加学生信息</a>
    		<a href="/myFirstTest/jdbcHomework/login.jsp">登录界面</a>
    		
    	</div>
  </body>
</html>

4.删除学生信息后台处理代码

deleteStu.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>删除学生信息</title>
  </head>
  
  <body>
  
     <jsp:useBean id="link" class="jdbcHomework.LinkMysql"></jsp:useBean>
     <% 
	   request.setCharacterEncoding("utf-8");
	   String Sid = request.getParameter("Sid");
	   System.out.println(Sid);
	   Connection con=null;
	   PreparedStatement ps=null;
	   //ResultSet rs=null;
      
       con = link.getConnection();  
       
	   String sql="delete from student where Sid=? ";
       ps=con.prepareStatement(sql);
       ps.setString(1,Sid);            
       int i=ps.executeUpdate();
       
       if(i>0){ 
       	System.out.println("删除成功!");      	
       	//response.sendRedirect("linkMysql.jsp");
       	out.print("<script type='text/javascript'> alert('删除成功!');window.location='linkMysql.jsp';</script>");
      
       }
       else{  
          System.out.println("删除的学生不存在!");  
       	  //response.sendRedirect("linkMysql.jsp");
       	  out.print("<script type='text/javascript'> alert('删除失败!');window.location='linkMysql.jsp';</script>");
         
       }
        
        ps.close();
        con.close();
       
	                        
     %>
  </body>
</html>

5.修改学生信息主界面代码

deleteStu.jsp

<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>修改学生信息页面</title>
  </head>
  
  <body bgcolor="pink">
  		<div class="top" align="center">
  			<h1>欢迎来到洛可可学生系统修改(更新)页面</h1>
  		</div>
  
  		<hr>
  		
 		<div class="center" align="center">
 			<jsp:useBean id="link" class="jdbcHomework.LinkMysql"></jsp:useBean>
		  	<%
		  		String Sid = request.getParameter("Sid");
		  		
		  		session.setAttribute("Updateid", Sid); //用于更新处理获取学生id信息

		  		System.out.println("修改学号为"+Sid+"的学生信息");
		  		Connection con=null;
		       PreparedStatement ps=null;
		       
		       con=link.getConnection();
		       
		       
		       String sql="select * from student where Sid=? ";
		       ps=con.prepareStatement(sql);
		       ps.setString(1,Sid);            
		       ResultSet rs=ps.executeQuery();
		       if(rs.next()){       	   	
		       	
		    %>
		    
	       <form action="/myFirstTest/jdbcHomework/doupdate.jsp" method="post" >
	       		<table border="1" bgcolor="rgb(248, 169, 182)" >
	       			<tr>
	       			
	       				<th>学号:</th>
	       				<td><%=rs.getString(1) %></td>
	       			</tr>
	       			<tr>
	       				<th>姓名:</th>
	       				<td><input type="text" name="Sname" value="<%=rs.getString(2) %>"></td>
	       			</tr>
	       			<tr>
	       				<th>性别:</th>
	       				<td><input type="text" name="sex" value="<%=rs.getString(3) %>"></td>
	       			</tr>
	       			<tr>
	       				<th>班级:</th>
	       				<td><input type="text" name="banji" value="<%=rs.getString(4) %>"></td>
	       			</tr>
	       			<tr>
	       				<th>院系:</th>
	       				<td><input type="text" name="yuanxi" value="<%=rs.getString(5) %>"></td>
	       			</tr>
	       			
	       		</table>
	       		<br>
	       		<input type="submit" value="修改完成">
	       </form>
		       
	       <%
		       }
		        rs.close();
		        ps.close();
		        con.close();
	  	 	%>
 		</div>
 		
		  <hr>
		  <br>
    	<div class="bottom" align="center">
	       	<a href="/myFirstTest/jdbcHomework/linkMysql.jsp">返回上一界面</a>
    		<a href="/myFirstTest/jdbcHomework/login.jsp">切换账号</a>
	       	

    	</div>
    	
  </body>
</html>

5.修改学生信息后台处理代码

doupdate.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>更新学生信息处理</title>
  </head>
  
  <body>
    <jsp:useBean id="link" class="jdbcHomework.LinkMysql"></jsp:useBean>
    <%
    	request.setCharacterEncoding("utf-8");
    	
    	String Sid = (String)session.getAttribute("Updateid");
    	
		String Sname = request.getParameter("Sname");
		String sex = request.getParameter("sex");
		String banji = request.getParameter("banji");
		String yuanxi = request.getParameter("yuanxi");
		System.out.println(Sid+Sname+sex+banji+yuanxi);
		Connection con=null;
        PreparedStatement ps=null;
       
		con=link.getConnection();

       String sql="update student set Sname=?,Ssex=?,Sclass=?,Syuanxi=? where Sid=?";
       ps=con.prepareStatement(sql);
       ps.setString(1,Sname);
       ps.setString(2, sex);
       ps.setString(3,banji); 
       ps.setString(4,yuanxi);
       ps.setString(5,Sid);     
       int i=ps.executeUpdate();
       if(i>0){ 
	       System.out.println("修改成功!");      	
	       	//response.sendRedirect("linkMysql.jsp");
       		out.print("<script type='text/javascript'> alert('学生信息修改成功!');window.location='linkMysql.jsp';</script>");
      
       }
       else{ 
	       System.out.println("修改失败!");      
	       //response.sendRedirect("linkMysql.jsp");
	       out.print("<script type='text/javascript'> alert('学生信息修改失败!');window.location='login.jsp';</script>");
         
       }
       
        ps.close();
        con.close();
    
     %>
  </body>
</html>

6.添加学生信息主界面代码

add.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>添加学生信息页面</title>
 <script>
    function checkForm() {
      var id = document.forms["form1"]["id"].value;
      var sex = document.forms["form1"]["sex"].value;

      // 验证学号非空且为数字组成的11位以内
      if (id.trim() === "") {
        alert("学号不能为空");
        return false;
      }
      if (!/^\d{1,11}$/.test(id)) {
        alert("请输入有效的学号(数字组成的11位以内)");
        return false;
      }

      // 验证性别为男、女或留空
      if (sex.trim() !== "" && sex.trim() !== "男" && sex.trim() !== "女") {
        alert("性别只能是男、女");
        return false;
      }

      return true;
    }
  </script>

  </head>
  
  <body bgcolor="pink">
  
	  <div class="top" align="center">
	  	<h1>欢迎来到洛可可学生系统添加页面</h1>
	  </div>
	  
	  <div class="center" align="center">    
	 
		    <form name="form1" action="/myFirstTest/jdbcHomework/doadd.jsp" method="post" onsubmit="return checkForm();">
		     <table>
			    <tr>
			    	<td>学号:</td>
			    	<td><input type="text" name="id" ></td>
			    </tr>
			    <tr>
			    	<td>姓名:</td>
			    	<td><input type="text" name="name" ></td>
			    </tr>
			    <tr>
			    	<td>性别:</td>
			    	<td width="50"><input type="text" name="sex"></td>
			    </tr>
			    <tr>
			    	<td>班级:</td>
			    	<td width="50"><input type="text" name="banji"></td>
			    </tr>
			    <tr>
			    	<td>院系:</td>
			    	<td width="50"><input type="text" name="yuanxi"></td>
			    </tr>
			    <tr >
			    	<td colspan="2" align="center">
			    		<input type="submit" value="添加"/>
			    		<input type="reset"/>	
			    	</td>
			   </tr>
	
	   		</table>
	 	 </form>
	   </div>
	   
	   <br>
	   <div align="center">
	   		<a href="/myFirstTest/jdbcHomework/linkMysql.jsp">返回上一界面</a>
	   		<a href="/myFirstTest/jdbcHomework/login.jsp">切换账号</a>
	   </div>
  </body>
</html>

6.添加学生信息后台处理代码

doadd.jsp

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>添加学生信息后台处理</title>
  </head>
  
  <body>
      <jsp:useBean id="link" class="jdbcHomework.LinkMysql"></jsp:useBean>
	<% 
		request.setCharacterEncoding("utf-8");
		String id = request.getParameter("id");
		String name = request.getParameter("name");
		String sex = request.getParameter("sex");
		String banji = request.getParameter("banji");
		String yuanxi = request.getParameter("yuanxi");
		
		Connection con=null;
       	PreparedStatement ps=null;
      
       con = link.getConnection();  
       
       String sql="insert into student(Sid,Sname,Ssex,Sclass,Syuanxi) values(?,?,?,?,?)";
       ps=con.prepareStatement(sql);
       ps.setString(1,id);
       ps.setString(2, name);
       ps.setString(3,sex); 
       ps.setString(4,banji);
       ps.setString(5,yuanxi);     
       int i=ps.executeUpdate();
       
       if(i>0){ 
	       System.out.println("添加成功!");      	
	       //response.sendRedirect("/myFirstTest/jdbcHomework/linkMysql.jsp");
	       out.print("<script type='text/javascript'> alert('添加成功!');window.location='/myFirstTest/jdbcHomework/linkMysql.jsp';</script>");
      
       }
       else{ 
	       System.out.println("添加失败,请重新输入!");      
	       //response.sendRedirect("/myFirstTest/jdbcHomework/add.jsp");	   
	      out.print("<script type='text/javascript'> alert('添加失败!');window.location='/myFirstTest/jdbcHomework/add.jsp';</script>");
         
       }
       
        ps.close();
        con.close();
       
	%>
  </body>
</html>

效果

运行初始界面

在这里插入图片描述

输入错误用户信息登录返回登录页面

在这里插入图片描述
弹窗提示登录失败,请重新登录!
在这里插入图片描述
点击确定后返回登录界面
在这里插入图片描述

有空信息登录提示并返回登录界面

只输入一个信息
在这里插入图片描述

弹框提示请输入完整信息
在这里插入图片描述

点击确定继续输入
在这里插入图片描述
输入两个信息
在这里插入图片描述
弹框提示输入完整信息
在这里插入图片描述
点击确定可继续输入
在这里插入图片描述

输入非法字符登录提示并返回登录界面

在这里插入图片描述
弹框提示输入包含非法字符
在这里插入图片描述
点击确定即可重新输入,可重置重新输入或修改错误的信息
在这里插入图片描述

输入正确用户信息登录进入系统

输入正确学号、姓名、密码后控制台输出登录成功,页面跳转至登录成功页面(显示数据库学生信息表)
在这里插入图片描述
弹窗提示登录成功! 点击确定即可跳转到登录成功页面【学生信息查询页面】
在这里插入图片描述

在这里插入图片描述

1.登录成功后控制台输出登录成功提示
2.点击记录后面的删除与修改可进行相关操作,点击表单后面的添加学生信息可跳转到添加学生信息页面
3.点击登录界面可跳转到登录页面进行账号切换

**加粗样式**

添加学生信息功能

1.在主界面信息表后面都有一个添加学生信息选项,点击即可跳转至学生信息添加页面,之后输入信息点击添加即可完成添加学生信息功能
添加前
在这里插入图片描述
添加
在这里插入图片描述
添加后
在这里插入图片描述
在这里插入图片描述
2.在添加学生信息页面表格下面有返回上一界面和切换账号超链接,点击返回上一界面即跳转到登录成功页面【学生信息查询页面】,点击切换账号即跳转到登录界面

添加学生信息页面
在这里插入图片描述
点击返回上一界面
在这里插入图片描述
点击切换账号
在这里插入图片描述

删除学生信息功能

在主界面信息每行后面都有一个删除选项,点击即可删除该行信息
删除前
在这里插入图片描述
删除后
在这里插入图片描述
在这里插入图片描述

修改学生信息功能

1.在主界面信息每行后面都有一个修改选项,点击即可跳转至修改该行信息页面,可以修改该行信息(学号不可更改)
修改前
在这里插入图片描述
修改
在这里插入图片描述
修改后
在这里插入图片描述
在这里插入图片描述
2.在添加学生信息页面表格下面有返回上一界面和切换账号超链接,点击返回上一界面即跳转到登录成功页面【学生信息查询页面】,点击切换账号即跳转到登录界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/709980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

76、基于STM32单片机车牌识别摄像头图像处理扫描设计(程序+原理图+PCB源文件+相关资料+参考PPT+元器件清单等)

单片机主芯片选择方案 方案一&#xff1a;AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元&a…

阿里拿38K出来的大佬良心分享,熬夜整理10 万字详细Java面试笔记

国内的互联网面试&#xff0c;恐怕是现存的、最接近科举考试的制度。 这是由于互联网IT行业的求职者太多了&#xff0c;如果考察的是清一溜的算法题和设计题&#xff0c;那么会要求面试官有极高的技术水平&#xff0c;还要花大量的时间成本和精力。 所以&#xff0c;八股文面…

#systemverilog# 关于随机约束之 unique 关键字

前言 在随机约束中,我们可以使用关键字 unique 。 使用关键字unique定义的SystemVerilog约束称为唯一约束。在随机化中,使用唯一约束可以生成变量集的唯一值或数组的唯一元素。这里着重解释一下变量集:是同一类型随机变量的集合。 通过unique约束我们可以完成以下任务: …

详解c++---哈希桶

目录标题 闭散列的回顾拉链法/哈希桶的原理准备工作find函数插入函数erase函数析构函数代码测试insert函数的改进 闭散列的回顾 在前面的学习中我们知道了闭散列的运算规则&#xff0c;当两个数据计算得到的位置发生冲突时&#xff0c;它会自动的往后寻找没有发生冲突的位置&a…

樽海鞘群算法(SSA)(含MATLAB代码)

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…

时间序列分解 | Matlab自适应噪音的完整集合经验模态分解CEEMDAN分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab自适应噪音的完整集合经验模态分解CEEMDAN分解 部分源码 %--------------------

torch_scatter安装踩坑实录

由于运行代码出现如下报错 ModuleNotFoundError: No module named torch_scatter因此&#xff0c;在网上找到一篇博客【不好使】 pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.12.1cu116.html(match) F:\matchCode\SuperGlue_training-main>p…

Bootstrap 表格

文章目录 Bootstrap 表格基本的表格可选的表格类条纹表格边框表格悬停表格精简表格 上下文类响应式表格 Bootstrap 表格 Bootstrap 提供了一个清晰的创建表格的布局。下表列出了 Bootstrap 支持的一些表格元素&#xff1a; 标签描述<table>为表格添加基础样式。<thea…

学习笔记-图解HTTP

1 Web及网络基础 1.1 适用Http协议访问Web 在浏览器上输入网址然后访问指定的网页&#xff0c;浏览器就相当于是客户端&#xff0c;访问的网址就是指向特定的服务器。 HTTP协议&#xff1a;HyperText Transfer Protocol&#xff0c;超文本传输协议。 Web是建立在HTTP协议上…

MySQL8.0安装详细教程

前言&#xff1a; MySQL版本区别&#xff1a; ● MySQL Community Server&#xff1a;Community是社区版本&#xff0c;开源免费&#xff0c;但不提供官方技术支持&#xff1b; ● MySQL Enterprise Edition&#xff1a;Enterprise企业版本&#xff0c;需付费&#xff0c;可以…

剑指 Offer 数组中数字出现的次数

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;数组中数字出现的次数 ⭕️ 代码&#xff1a; /*思路&#xff1a;有两个出现单次的数字&#xff0c;其余数字都出现两次。把所有的数字分成两组&#xff0c;这两个数组分到不同的组&#xff0c;异或起来&#xff0c;就可…

力扣 108. 将有序数组转换为二叉搜索树

题目来源&#xff1a;https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ C题解1&#xff1a;递归法。由于要求是平衡树&#xff0c;又给出了递增数组&#xff0c;所以构建二叉树只需将中间值作为中间节点&#xff0c;左右两边分属左右子树…

无广告 齐全 简洁 免费的音乐开源软件(支持 电脑max win linux 手机 )——lxMusic

无广告 齐全 简洁 免费的音乐开源软件&#xff08;支持 电脑max win linux 手机 &#xff09;——lxMusic 话不多说先上效果 &#xff08;真香&#xff09; 下载地址&#xff08;官方&#xff09; https://www.lanzoui.com/b0bf2cfa/ 密码&#xff1a;glqw 软件安装包说明 文…

python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

简介 当今社会在测试领域&#xff0c;接口测试已经越来越多的被提及&#xff0c;被重视&#xff0c;而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试&#xff0c;很多测试人员在接触到接口测试的时候&#xff0c;也许对测试执行还可以比较顺利的上手…

FDM3D打印系列——5、上色和灯光

3D打印扎古头可动并加灯 大家好&#xff0c;我是阿赵&#xff0c;这次通过一个实际操作的例子&#xff0c;来聊一下3D打印模型添加效果。这里主要讲2个方面&#xff0c;一个是上色&#xff0c;另一个是加灯光 一、上色 这个扎古头模型就是这次的主角。 1、打磨 可以看到&…

MIT 6.S081 教材第七章内容 -- 调度 -- 上

MIT 6.S081 教材第七章内容 -- 调度 -- 上 引言线程&#xff08;Thread&#xff09;概述XV6线程调度XV6线程切换实际切换流程 XV6进程切换示例程序yield/sched函数switch函数scheduler函数 补充 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课程第七章教材内容翻译加整理…

基于Python所写的飞鸟游戏设计

https://blog.csdn.net/qq_64505944/article/details/131493838?spm1001.2014.3001.5502

容器环境检测方法总结

在渗透测试过程中&#xff0c;我们的起始攻击点可能在一台虚拟机里或是一个Docker环境里&#xff0c;甚至可能是在K8s集群环境的一个pod里&#xff0c;我们应该如何快速判断当前是否在容器环境中运行呢&#xff1f; 当拿到shell权限&#xff0c;看到数字和字母随机生成的主机名…

(四)Qt 动态手势识别“手掌随动”+“握拳选择”

系列文章目录 通过Qt实现手势识别控制软件操作相关系列技术方案 &#xff08;一&#xff09;Qt 将某控件、图案绘制在最前面的方法&#xff0c;通过QGraphicsScene模块实现 &#xff08;二&#xff09;Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方&#xff0c;实现圆…

【java爬虫】使用selenium爬取优惠券

本文将介绍使用selenium爬取某宝优惠券的方法&#xff0c;之所以使用selenium是因为我不会js逆向&#xff0c;如果你已经参透了淘宝联盟的js逆向方法&#xff0c;那么直接使用接口调数据就行了。 使用selenium接管chrome浏览器 由于淘宝联盟需要先登录&#xff0c;为了避免每…