I've written a class method that will take "batches" of data (each row that makes a "value" to be inserted, via SQL, to the database comes from a two-dimensional array labeled "data_values").
However, there will be instances when my program will be getting redundant data, i.e. data that might already be in the database. Because there's a primary key in the database, the program will break if it cannot upload the data because of a duplicate entry.
Is there a way to use a try/catch so that the program will continue uploading data, effectively "skipping" the duplicates? If so, how can I implement it?
Thank you in advance. If I could clarify my question, please let me know.
My current code is here:
public void insertData(ArrayList<String> data_types, String[][] data_values) {
        try{    
            c.setAutoCommit(false); 
            // creates insert statement
            String insertDataScript = "INSERT INTO "+tableName+" VALUES (";
            for(int q = 0; q < data_types.size()-1; q++) {
                insertDataScript += "?, ";
            }
            insertDataScript += "?)";
            PreparedStatement stmt = c.prepareStatement(insertDataScript);
            for (int i = 0; i < data_values.length; i++) {
                for(int j = 1; j < data_types.size()+1; j++) {
                    if(data_types.get(j-1).toLowerCase().equals("double")) {
                        stmt.setDouble(j, Double.valueOf(data_values[i][j-1]));
                    }
                    else if(data_types.get(j-1).toLowerCase().equals("string")) {
                        stmt.setString(j, data_values[i][j-1]);
                    }
                    else {
                        System.out.println("Error");
                    }
                }
                stmt.addBatch();
            }
            stmt.executeBatch();
            c.commit();
            c.setAutoCommit(true);
            stmt.close();
        } 
        catch ( Exception e ) {
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
            System.exit(0);
        }
    }
 
     
     
    