diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/database/DatabaseManager.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/database/DatabaseManager.java index 9618190..3f54c5a 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/database/DatabaseManager.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/database/DatabaseManager.java @@ -1,5 +1,7 @@ package ntnu.sytemutvikling.team6.database; +import ntnu.sytemutvikling.team6.models.Charity; +import ntnu.sytemutvikling.team6.models.CharityRegistry; import ntnu.sytemutvikling.team6.scraper.APICharityData; import java.sql.*; @@ -103,5 +105,50 @@ REFERENCES Charities (`org_number`) } } + public void addAPIDataToTable(List charities){ + Connection conn = null; + try { + conn = connection.getMySqlConnection(); + conn.setAutoCommit(false); + String sql_query = """ + INSERT INTO charities (org_number, charity_name, charity_link, pre_approved, status) + VALUES (?, ?, ?, ?, ?) + """; + + try (PreparedStatement ps = conn.prepareStatement(sql_query)) { + for (Charity charity : charities) { + ps.setString(1, charity.getOrg_number().replaceAll("\\s", "")); + ps.setString(2, charity.getName()); + ps.setString(3, charity.getDescription()); + ps.setBoolean(4, charity.getPreApproved()); // Description is the link + ps.setString(5, charity.getStatus()); + + ps.addBatch(); + } + ps.executeBatch(); + } + conn.commit(); + + } catch (SQLException e) { + if (conn != null) { + try { + conn.rollback(); + } catch (SQLException ex) { + ex.printStackTrace(); + } + } + throw new RuntimeException("ERROR: Something went wrong during updating charities table."); + } finally { + if (conn != null) { + try { + conn.setAutoCommit(true); + conn.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + } } \ No newline at end of file