使用JDBC通过方法将数据插入MySQL数据库

时间:2013-01-26 21:40:23

标签: forms servlets jdbc

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

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

//方法  //此方法应返回executeUpdate //方法返回的int。注意:驱动程序名称和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;
}

我失去了一点点,我会非常感激。

1 个答案:

答案 0 :(得分:2)

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

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

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

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查询。那是不可能的。你需要一份准备好的声明来做到这一点。

the JDBC tutorial中的更多信息。