Подготовленный Java оператор не выполняется
Я создал небольшую трехуровневую программу, состоящую из: front end -> servlet -> database.
Передний конец я ввожу некоторые детали в форму. Они передаются сервлету, который будет отображать некоторый HTML-код и отображать значения, введенные в форму, а также вызывать класс DatabaseHelper. Затем DatabaseHelper соединяет и вставляет эти же значения в таблицу.
Я знаю, что значения передаются в класс сервлета нормально, так как они отображаются в HTML. Таким образом, проблема должна лежать в подготовленном утверждении. Проблема в том, что я не вижу никакой ошибки в самом утверждении. Когда я запрашиваю саму таблицу, там нет данных.
Соединение с базой данных является функциональным, поскольку я могу вставлять значения в базу данных, используя жестко закодированные операторы, но не подготовленный оператор.
Вот посмотрите на утверждение, которое я использую. Любой совет высоко ценится.
public void addRegisterDetails(String name, String email, String country, String password, ){
try{
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver).newInstance();
// Make db connection
con = DriverManager.getConnection(url, USERNAME, PASSWORD);
st = con.createStatement();
String query = " INSERT INTO user_information (name, email, country, password)" + " VALUES (?, ?, ?, ?)";
PreparedStatement preparedStmt = con.prepareStatement(query);
preparedStmt.setString (1, name);
preparedStmt.setString (2, email);
preparedStmt.setString (3, country);
preparedStmt.setString (4, password);
preparedStmt.execute();
}catch(ClassNotFoundException ex) {
System.out.println(ex);
}catch(Exception e){
e.printStackTrace();
}
}
Определение таблицы
ID | имя | электронная почта | страна | парольвсе VARCHAR кроме идентификатора, который имеет тип INT.