0

我有一个表格,我想将数据发送到数据库。如何通过方法参数传递请求数据并将其发送到数据库?

int status = InsertCustomer(fName, mName, lName , iage, issn, city, state, country);

//方法 // 此方法应返回一个 int,executeUpdate // 方法返回。注意:驱动程序名称和 URL // 已经在 init() 方法中可用。

  private int InsertCustomer(String firstName, String midName, String lastName, int age, int ssn, String city, String state, String country) {

    // JDBC logic


    try {
        Class.forName(driverName);
        Connection conn = DriverManager.getConnection(databaseURL);
        java.sql.Statement st = conn.createStatement();


        st.executeUpdate("INSERT INTO Customer(firstName, midName, lastName, age, ssn, city, state, country)" + 
                   "VALUES ('?', '?', '?', ?, ?, '?', '?', '?')";


    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }

    return 1;
}

我有点失落,一点点将不胜感激。

4

1 回答 1

2

要么您使用简单的(即未准备好的语句),并且您不能传递任何参数:

String sql = "insert into sometable (a, b, c) values (7, 8, 9)";
Statement st = conn.createStatement();
return st.executeUpdate(sql);

或者(在您的情况下,这就是您应该做的),您使用准备好的状态并传递参数:

String sql = "insert into sometable (a, b, c) values (?, ?, ?)";
PreparedStatement st = conn.prepareStatement(sql);
st.setInt(1, 7);
st.setInt(2, 8);
st.setInt(3, 9);
return st.executeUpdate();

在您的代码中,您正在使用一个简单的语句并尝试执行一个需要参数的 SQL 查询。那是不可能的。你需要一个准备好的声明来做到这一点。

JDBC 教程中的更多信息。

于 2013-01-26T21:49:51.033 回答