From 6bd2d64e9805a8c754284b9ad023bb4488e6a6e8 Mon Sep 17 00:00:00 2001 From: AdrianBalunan Date: Thu, 12 Mar 2026 12:01:46 +0100 Subject: [PATCH] Feat: Database now contain minimum information (only information provided by API), expect for Donations. --- .../sytemutvikling/team6/HmHApplication.java | 12 +++- .../team6/database/DatabaseManager.java | 58 ++++++------------- 2 files changed, 30 insertions(+), 40 deletions(-) diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/HmHApplication.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/HmHApplication.java index 678dce5..9535409 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/HmHApplication.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/HmHApplication.java @@ -1,5 +1,7 @@ package ntnu.sytemutvikling.team6; +import ntnu.sytemutvikling.team6.database.DatabaseConnection; +import ntnu.sytemutvikling.team6.database.DatabaseManager; import ntnu.sytemutvikling.team6.models.Charity; import ntnu.sytemutvikling.team6.models.CharityRegistry; import ntnu.sytemutvikling.team6.scraper.APICharityScraper; @@ -10,8 +12,8 @@ public class HmHApplication { public static void main(String[] args) { - init(); System.out.println("Hello world!"); + init(); } public static void init(){ @@ -29,5 +31,13 @@ public static void init(){ e.printStackTrace(); } + try { + DatabaseManager db = new DatabaseManager(); + db.testConnection(); + db.createTables(); + } catch (Exception e){ + e.printStackTrace(); + } + } } 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 9e1fd3c..9618190 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/database/DatabaseManager.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/database/DatabaseManager.java @@ -58,65 +58,45 @@ public boolean testConnection() { */ public void createTables() { - String sql_query = """ - -- MySQL Workbench Forward Engineering - - SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; - SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; - SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; - - -- ----------------------------------------------------- - -- Schema HelpMeHelp - -- ----------------------------------------------------- - - -- ----------------------------------------------------- - -- Schema HelpMeHelp - -- ----------------------------------------------------- - --CREATE SCHEMA IF NOT EXISTS `HelpMeHelp` DEFAULT CHARACTER SET utf8 ; - --USE `HelpMeHelp` ; - USE apbaluna; - + String sql_query1 = + """ -- ----------------------------------------------------- -- Table `HelpMeHelp`.`Charities` -- ----------------------------------------------------- - CREATE TABLE IF NOT EXISTS `HelpMeHelp`.`Charities` ( - `UUID` CHAR(36) NOT NULL, + CREATE TABLE IF NOT EXISTS Charities ( + `org_number` VARCHAR(255) NOT NULL, `charity_name` VARCHAR(255) NOT NULL, - `charity_description` VARCHAR(255) NOT NULL, - `isVerified` TINYINT NOT NULL, - `category` VARCHAR(45) NOT NULL, - PRIMARY KEY (`UUID`)) + `charity_link` VARCHAR(255) NOT NULL, + `pre_approved` TINYINT NOT NULL, + `status` VARCHAR(255) NOT NULL, + PRIMARY KEY (`org_number`)) ENGINE = InnoDB; - + """; + String sql_query2 = + """ -- ----------------------------------------------------- -- Table `HelpMeHelp`.`Donations` -- ----------------------------------------------------- - CREATE TABLE IF NOT EXISTS `HelpMeHelp`.`Donations` ( + CREATE TABLE IF NOT EXISTS Donations ( `UUID` CHAR(36) NOT NULL, `amount` DECIMAL NOT NULL, `date` DATE NOT NULL, - `Charities_UUID` CHAR(36) NOT NULL, + `Charities_org_number` VARCHAR(255) NOT NULL, PRIMARY KEY (`UUID`), - INDEX `fk_Donations_Charities_idx` (`Charities_UUID` ASC) VISIBLE, + INDEX `fk_Donations_Charities_idx` (`Charities_org_number` ASC) VISIBLE, CONSTRAINT `fk_Donations_Charities` - FOREIGN KEY (`Charities_UUID`) - REFERENCES `HelpMeHelp`.`Charities` (`UUID`) + FOREIGN KEY (`Charities_org_number`) + REFERENCES Charities (`org_number`) ON DELETE NO ACTION ON UPDATE NO ACTION) - ENGINE = InnoDB; - - - SET SQL_MODE=@OLD_SQL_MODE; - SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; - SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; - - """; + """; try (Connection conn = connection.getMySqlConnection(); Statement s = conn.createStatement()) { - s.execute(sql_query); + s.execute(sql_query1); + s.execute(sql_query2); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("Error creating table.");