我正在尝试将String变量记录到Java中的MySQL语句中的数据库中。
这是我的代码:
public void registerUser( String userName, String password ) {
try {
String insertQuery = "INSERT INTO Credentials ('11', name, pass) VALUES('11', ?, ?)";
pstmt = connection.prepareStatement(insertQuery);
pstmt.setString(2, userName);
pstmt.setString(3, password);
pstmt.executeUpdate();
// statement.executeUpdate("INSERT INTO Credentials VALUES(3, 'userName', 'password')");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// close the connection when done
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}//END finally
}//END registerUser
如您所见,此代码获取两个String值,它应该将它们放入数据库中。但我找不到合适的解决方案。
有什么想法吗?
感谢。
答案 0 :(得分:2)
此:
pstmt.setString(2, userName);
pstmt.setString(3, password);
需要:
pstmt.setString(1, userName);
pstmt.setString(2, password);
您只在PreparedStatement中设置两个变量,因此需要从1开始计数。 setter 方法中使用的整数需要与语句中的问号匹配,而不是给定SQL字符串的参数列表。