【问题标题】:JSP page not adding values to my databaseJSP 页面未向我的数据库添加值
【发布时间】:2016-05-25 01:39:32
【问题描述】:

我不确定问题出在我的代码中。当我按下提交按钮时,我正在尝试向我的数据库添加值。我还添加了一个 println 命令来打印出请求的参数,但即使这样也出现了空值。请帮忙。

<%@page import="java.sql.*"%>
<% Class.forName("com.mysql.jdbc.Driver");%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Inserting data Check</title>
    </head>
    <body>
        <h1>Checking data insertion</h1>
        <%!public class Actor {

                String URL = "jdbc:mysql://localhost:3306/sakila";
                String USERNAME = "root";
                String PASSWORD = "root";

                Connection connection = null;
                PreparedStatement insertActors = null;
                ResultSet resultSet = null;

                public Actor() {

                    try {
                        connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
                        insertActors = connection.prepareStatement(
                                "INSERT INTO Persons (PersonID, LastName, FirstName, Address, City)"
                                + " VALUES (?, ?, ?, ?, ?)");
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }

                public int setActors(String id, String last, String first, String address, String city) {
                    int result = 0;
                    try {
                        insertActors.setString(1, id);
                        insertActors.setString(2, last);
                        insertActors.setString(3, first);
                        insertActors.setString(4, address);
                        insertActors.setString(5, city);
                        result = insertActors.executeUpdate();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                    return result;
                }
            }
        %>
        <%
            int result = 0;

            String id  = new String();
            String last = new String();
            String first = new String();
            String add = new String();
            String c = new String();

            if (request.getParameter("id") != null) {
                id = request.getParameter(id);
                System.out.println("id" + id);
            }
            if (request.getParameter("last") != null) {
                last = request.getParameter(last);
               System.out.println("id" + last);
            }
            if (request.getParameter("first") != null) {
                first = request.getParameter(first);
               System.out.println("id" + first);
            }
            if (request.getParameter("address") != null) {
                add = request.getParameter(add);
                System.out.println("id" + add);
            }
            if (request.getParameter("city") != null) {
                c = request.getParameter(c);
                System.out.println("id" + c);
            }

        %>
        <form name="myForm" action="insert.jsp" method="POST">
            <table>
                <tbody>
                    <tr>
                        <td>Id</td>
                        <td><input type="text" name="id" value="" size="50" /></td>
                    </tr>
                    <tr>
                        <td>Last Name</td>
                        <td><input type="text" name="last" value="" size="50" /></td>
                    </tr>
                    <tr>
                        <td>First Name</td>
                        <td><input type="text" name="first" value="" size="50" /></td> 
                    </tr>
                    <tr>
                        <td>Address</td>
                        <td><input type="text" name="address" value="" size="50" /></td> 
                    </tr>
                    <tr>
                        <td>City</td>
                        <td><input type="text" name="city" value="" size="50" /></td> 
                    </tr>
                </tbody>
            </table>     
            <input type="reset" value="Reset" name="reset" />
            <input type="submit" value="Submit" name="submit" />
        </form>        
    </body>
</html>

【问题讨论】:

  • 你有公共方法'setActors',但你从不调用它。
  • @KenBekov 谢谢你的朋友。它现在就像一个魅力。你帮了大忙。

标签: java html jsp


【解决方案1】:

这似乎是您的问题(至少在您检查值时):

if (request.getParameter("id") != null) {
            id = request.getParameter(id); // change to request.getParameter("id");
            System.out.println("id" + id);
        }
        if (request.getParameter("last") != null) {
            last = request.getParameter(last); // change to "last"
           System.out.println("id" + last);
        }
        if (request.getParameter("first") != null) {
            first = request.getParameter(first); // change to "first"
           System.out.println("id" + first);
        }
        if (request.getParameter("address") != null) {
            add = request.getParameter(add); // change to "address"
            System.out.println("id" + add);
        }
        if (request.getParameter("city") != null) {
            c = request.getParameter(c); // change to "city"
            System.out.println("id" + c);
        }

【讨论】:

  • 非常感谢您的快速回复。我已经进行了必要的更改,现在 System.out.println() 正在向我显示我输入的所有数据。但是,当我检查数据库时,它仍然是空的。还有什么我想念的吗?
  • 可能尝试使用connection.commit();然后 insertActors.close();连接.close();只是看看它是否有帮助。
  • 另外,添加 println(result);在执行更新()之后;价值是多少?
  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2013-04-12
  • 1970-01-01
  • 2016-04-22
  • 2018-08-04
  • 1970-01-01
  • 2013-06-27
相关资源
最近更新 更多