Skip to content

Commit

Permalink
Feat: DatabaseManager is able to Add non-duplicate rows of data from …
Browse files Browse the repository at this point in the history
…API, as a function.
  • Loading branch information
AdrianBalunan committed Mar 12, 2026
1 parent 7aca6b1 commit 0fe1de1
Showing 1 changed file with 47 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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.*;
Expand Down Expand Up @@ -103,5 +105,50 @@ REFERENCES Charities (`org_number`)
}
}

public void addAPIDataToTable(List<Charity> 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();
}
}
}

}
}

0 comments on commit 0fe1de1

Please sign in to comment.