вставка в ddbb без использования подготовленного оператора - PullRequest
0 голосов
/ 31 марта 2020

Для начала я впервые использую JDB C. У меня есть метод с именем insertQuery и другой метод с именем updateQuery, оба получают строку для обновления или вставки нового mov ie в базу данных с именем Movies. Таким образом, основываясь на некоторых значениях, которые пользователь введет через базовый пользовательский интерфейс c, мой код выполнит один или другой запрос. Проблема в том, что я получаю синтаксическую ошибку на обновлении и ошибку 23000 на вставке, и я не знаю, почему

try {
  ResultSet rs = conn.selectQuery("SELECT title FROM movie WHERE title LIKE '" + title + "';");
  if (rs != null) {
    if (rs.next()) {
      System.out.println("Updating db...");
      conn.updateQuery("UPDATE movie SET title ='" + title 
                       + "', id_director = " + idDirector 
                       + ", year = " + year 
                       + ", duration = " + duration 
                       + ", country = '" + country 
                       + "', movie_facebook_likes = " + facebookLikes  
                       + ", imdb_score = "+ imdbScore 
                       + ", gross = " + gross 
                       + ", budget = " + budget 
                       + " WHERE title LIKE '" + title + "';");
    } else {
      System.out.println("Inserting into db...");
      conn.insertQuery("INSERT INTO movie (title, id_director, year, duration,
                       country, movie_facebook_likes, imdb_score, gross, budget) " +
                       "VALUES ('" + title + "', " + idDirector + "," + year + ", " 
                       + duration + ", " + country + ", " + facebookLikes + ", "
                       + ", " + imdbScore + ", " + gross + ", " + budget + ");");
    }
  }
} catch (SQLException e1) {
  JOptionPane.showMessageDialog(mainView, "MySQL error", "ERROR", .ERROR_MESSAGE);
}

1 Ответ

0 голосов
/ 04 апреля 2020

Это как я использовал для вставки в БД без подготовленной инструкции:

public int adduser(String id, String nm, String pwd,String cy) {
    boolean result = false;
    int i = 0;
    try {
        Connection con=Util.getConnection();
        Statement stmt =con.createStatement();

        i = stmt.executeUpdate(
            "INSERT INTO userdata (userid,name,password,city)\n" +
            "VALUES ("+id+",'"+nm+"','"+pwd+"','"+cy+"')");
    }
    catch(Exception ex) {
        System.out.println(ex);
    }

    return i ; 
}
...