2016-05-10 3 views
-2

Я пытался запустить программу для всех записей, обновленных для отображения на этой программе, но без изменений в mysql.Java и Mysql Обновление всех записей с использованием Arraylist

try 
    { 
     User user = new User(null, null); 
     user.setId(5); 
     user.setName("spider"); 
     user.setPlatform("Mac"); 
     updateRecordToTable(user); 

    ArrayList<User> userlists=new ArrayList<User>(); 

     userlists.add(new User("alish","Windows")); 
     userlists.add(new User("galish","Ubundu")); 
     userlists.add(new User("balish","Boss")); 
    } 
    catch (SQLException e) 
    { 

     System.out.println(e.getMessage()); 

    } 

} 

private static int updateRecordToTable(User user) throws SQLException 
{ 

    Connection dbConnection = null; 
    PreparedStatement preparedStatement = null; 

    String updateTableSQL = "UPDATE NEWDB SET NAME =? , PLATFORM = ? WHERE ID =? "; 

    try 
    { 
     dbConnection = getDBConnection(); 
     preparedStatement = dbConnection.prepareStatement(updateTableSQL); 

     System.out.println("Record is updated all to NEWDB table!"); 

    } 

Попробуйте исправить эту программу.

+1

https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html#supply_values_ps –

+0

Я не вижу использование пользовательского параметра в методе updateRecordToTable? –

+0

вы не даете никаких реальных значений вашему утверждению - только запрос. Btw. 'new User (null, null)', а затем с помощью seters плачет для дополнительного конструктора для пользователя – Rhayene

ответ

0

Вы должны использовать параметры.

private static int updateRecordToTable(ArrayList<User> users) throws SQLException 
{ 
    int i = 0; 
    Connection dbConnection = null; 
    PreparedStatement preparedStatement = null; 

    String updateTableSQL = "UPDATE NEWDB SET NAME =? , PLATFORM = ? WHERE ID =? "; 

try 
{ 
    dbConnection = getDBConnection(); 
    for (User user : users){ 
     preparedStatement = dbConnection.prepareStatement(updateTableSQL); 
     preparedStatement .setString(1, user.getName()); 
     preparedStatement .setString(2, user.getPlatform()); 
     preparedStatement .setInt(3, user.getId()); 
     preparedStatement .executeUpdate(); 
     i++; 
    } 
    dbConnection.commit(); 

    System.out.println(i + " Records updated!"); 

} 
+0

Спасибо, сэр, этот код более полезен. Но не удалось обновить все записи. Как обновить все записи, используя arraylist? – Alish

+0

вам нужно изменить аргументы вашего метода от одного пользователя до ArrayList и использовать, например, цикл for для итерации через ArrayList. Я отредактирую свой предыдущий ответ, чтобы привести пример. – Eritrean

Смежные вопросы