JSP实现HTML网页对Mysql数据库的数据修改

5 篇文章 1 订阅
3 篇文章 1 订阅

JSP实现HTML网页对Mysql数据库的数据修改:

  1. 注意获取原始Id,并将其赋值到当前的HTML中
  2. rs.next才能获取到数值,rs不可以
  3. 增加一些个人的逻辑判断,比如Id不可以修改,任何属性为空都不能成功修改
    示例:
    这里写图片描述
    当然数据库中的数据也会相应的改变
<%@page import="java.sql.Connection,java.sql.Statement,java.util.Scanner,java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>

<%

request.setCharacterEncoding("utf-8");
String msg="";
String msg1="";
boolean error=false;
获取网址中传递的Id
String origId = request.getParameter("pid");
String value1 = null;
String value2 = null;
String value3 = null;

try{
    String connectString = "jdbc:mysql://localhost/test"
            + "?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";
    String user = "root";
    String pwd = "mysql";
    String sql = "select *from stu where id = '" + origId + "';";
    Class.forName("com.mysql.jdbc.Driver");

    Connection conn = DriverManager.getConnection(connectString, user, pwd);
    Statement state = conn.createStatement();
    将原始Id中的数据写入到当前的HTML中
    ResultSet rs = state.executeQuery(sql);
    while(rs.next()){  注意rs是空指针,要使用rs.next才能访问到数值
        value1 = rs.getString("id");
        value2 = rs.getString("name");
        value3 = rs.getString("age");
    }
    rs.close();
    state.close();
    conn.close();
}catch (Exception e){
    e.printStackTrace();
}

String s1 = request.getParameter("sub");

if(s1!=null){
    String Id = "";
    String Name = "";
    String Age = "";
    String Grade = "";
    String Hobby[]= {""};
    String Hobbies = "";
    for(int j = 0 ; j < 1 ; j++){
        Id = "";
        Name = "";
        Age = "";
        Grade = "";
        Hobbies = "";

        if(request.getParameter("Id")!=null){
            Id = request.getParameter("Id");
            if(Id == ""){
                error = true;
                msg = "ID cant be empty!";
                break;
            }
            if(!Id.equals(origId)){
                error = true;
                msg = "ID cant be changed!";
                break;
            }
        }

        if(request.getParameter("Name")!=null){
            Name = request.getParameter("Name");
            if(Name == ""){
                error = true;
                msg = "Name cant be empty!";
                break;
            }
        }

        if(request.getParameter("Age")!=null){
            Age = request.getParameter("Age");
            if(Age == ""){
                error = true;
                msg = "Age cant be empty!";
                break;
            }
        }

        if(request.getParameter("Grade")!=null){
            Grade = request.getParameter("Grade");
            if(Grade == ""){
                error = true;
                msg = "Grade cant be empty!";
                break;
            }
        }


        if(request.getParameter("Hobby")!=null){
            Hobby = request.getParameterValues("Hobby");
            int len = Hobby.length;
            for(int i = 0 ; i < len ; i++){
                if(i==0){
                    if(len==1){
                        Hobbies = Hobby[0];
                    }else{
                        Hobbies = Hobbies + Hobby[i] + "+";
                    }
                }else if(i == (len-1)){
                    Hobbies = Hobbies + Hobby[i];

                }else{
                    Hobbies = Hobbies + Hobby[i] + "+";
                }
            }
        }
        if(Hobbies == ""){
            error = true;
            msg = "Hobby cant be empty!";
            break;
        }
    }

    对数据库进行修改

    if(!error){
        try{
            String connectString = "jdbc:mysql://localhost/test"
                    + "?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";
            String user = "root";
            String pwd = "mysql";
            String sql = null;
            Class.forName("com.mysql.jdbc.Driver");

            Connection conn = DriverManager.getConnection(connectString, user, pwd);
            Statement state = conn.createStatement();
            sql = "update stu set name = '" + Name + "', age = '" + Age + "', grade = '" +
        Grade + "', hobby = '" + Hobbies +"';";
            if(Hobbies==""){
                msg1 = "yes";
            }else{
                msg1 = "no";
            }

            int cnt = state.executeUpdate(sql);
            if(cnt > 0){
                msg = "Update success!";
            }else{
                msg = "Add Error!";
            }
            state.close();
            conn.close();

        }catch (Exception e){
            e.printStackTrace();
        }
    }
    if(msg == "Update success!"){
        value1 = Id;
        value2 = Name;
        value3 = Age;
    }
}



%>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>修改学生记录</title>
   <style>
      a:link,a:visited {color:blue}
      .container{  
        margin:0 auto; 
        width:500px;  
        text-align:center;  
      } 
   </style>
<body>
<div class="container">
    <h1>修改学生记录</h1>
    <form action="updateStu.jsp?pid=<%=origId %>" 
          method="post" name="f">
        学号:<input name="Id" type="text" value= "<%=value1 %>" />
        <br/><br/>
        姓名:<input name="Name" type="text" value= "<%=value2 %>" />
        <br/><br/>
        年龄:<input type = "text" name = "Age" value= "<%=value3 %>" />
        <br />
        <br />
        请选择你的年级:
        <br />
        <select name="Grade">
        <option value="freshman">大学一年级</option>
        <option value="shophomore">大学二年级</option>
        <option value="junior" selected="selected">大学三年级</option>
        <option value="senior">大学四年级</option>
        </select>
        <br />
        <br />
        请选择你的爱好:
        <br />
        <input type="checkbox" name="Hobby" value="sports">
        sports
        <input type="checkbox" name="Hobby" value="travel">
        travel
        <input type="checkbox" name="Hobby" value="music">
        music            
        <br />
        <br />
    <input type="submit" name="sub" value="修改"/>
    <input type="reset" name="rset" value="清空"/>
    <br/><br/>
    </form>
    id is required!<br/><br/>
    <p><%=msg %></p>
    <p><%=msg1 %></p>
    <a href='browseStu.jsp'>返回</a>
    </div>

</body>
</html>
  • 12
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
JSP 中将图片上传到 MySQL 数据库,可以按照以下步骤进行操作: 1. 在表中添加一个 BLOB 类型的字段,用于存储图片数据。 2. 在 JSP 页面中使用表单,添加一个文件上传控件,用于选择要上传的图片文件。 3. 在 JSP 页面中编写 Java 代码,用于将选择的图片文件读取为二进制数据,并将其存储到数据库中。 以下是实现步骤的详细说明: 1. 添加 BLOB 类型字段 在 MySQL 数据库中创建一张表,包含一个 BLOB 类型的字段,用于存储图片数据。例如: ```sql CREATE TABLE images ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), data BLOB ); ``` 2. 添加文件上传控件 在 JSP 页面中添加一个文件上传控件,例如: ```html <form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" value="Upload" /> </form> ``` 3. 处理文件上传并存储到数据库 在 upload.jsp 页面中,使用 Java 代码处理文件上传,并将文件内容存储到数据库中。例如: ```jsp <%@ page import="java.sql.*" %> <%@ page import="java.io.*" %> <% // 获取上传的文件 Part filePart = request.getPart("image"); InputStream fileContent = filePart.getInputStream(); String fileName = filePart.getSubmittedFileName(); // 将文件内容读取为二进制数据 ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int length; while ((length = fileContent.read(buffer)) != -1) { output.write(buffer, 0, length); } byte[] imageData = output.toByteArray(); // 存储文件内容到数据库 Connection conn = null; PreparedStatement stmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); stmt = conn.prepareStatement("INSERT INTO images (name, data) VALUES (?, ?)"); stmt.setString(1, fileName); stmt.setBytes(2, imageData); stmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { } } if (conn != null) { try { conn.close(); } catch (SQLException e) { } } } // 显示上传成功消息 out.println("File uploaded successfully."); %> ``` 在这段代码中,首先获取上传的文件并读取其内容为二进制数据,然后将其存储到数据库中。最后输出上传成功消息。 注意:上述代码仅为示例,实际情况中需要根据具体需求进行修改。同时,为了避免 SQL 注入等安全问题,建议使用 PreparedStatement 来执行 SQL 语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值