我有一个表单,我想将数据发送到数据库。如何通过方法参数传递请求数据并将其发送到数据库?
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;
}
我失去了一点点,我会非常感激。
答案 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中的更多信息。