diff --git a/givehope.db b/givehope.db new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/app/Main.java b/src/main/java/app/Main.java index c533c16..0d14e0b 100644 --- a/src/main/java/app/Main.java +++ b/src/main/java/app/Main.java @@ -1,4 +1,16 @@ package app; +import static db.Database.URL; + +import db.Database; + public class Main { + public static void main(String[] args) { + try{ + Database.getConnection(); + System.out.println("Database connected"); + } catch (Exception e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/dao/CauseDao.java b/src/main/java/dao/CauseDao.java new file mode 100644 index 0000000..78c1a28 --- /dev/null +++ b/src/main/java/dao/CauseDao.java @@ -0,0 +1,4 @@ +package dao; + +public class CauseDao { +} diff --git a/src/main/java/dao/DonationDao.java b/src/main/java/dao/DonationDao.java new file mode 100644 index 0000000..291b292 --- /dev/null +++ b/src/main/java/dao/DonationDao.java @@ -0,0 +1,4 @@ +package dao; + +public class DonationDao { +} diff --git a/src/main/java/dao/OrganizationDao.java b/src/main/java/dao/OrganizationDao.java new file mode 100644 index 0000000..f406a3a --- /dev/null +++ b/src/main/java/dao/OrganizationDao.java @@ -0,0 +1,4 @@ +package dao; + +public class OrganizationDao { +} diff --git a/src/main/java/dao/UserDao.java b/src/main/java/dao/UserDao.java new file mode 100644 index 0000000..39575b7 --- /dev/null +++ b/src/main/java/dao/UserDao.java @@ -0,0 +1,21 @@ +package dao; + +import db.Database; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import model.User; + +public class UserDao { + + public void insert(User user) { + String sql = "INSERT INTO user(name, e_mail, password_hash) VALUES(?, ?, ?)"; + + try (Connection conn = Database.getConnection()) { + PreparedStatement stmt = conn.prepareStatement(sql); + } catch (SQLException e) { + throw new RuntimeException(e); + } + + } +} diff --git a/src/main/java/db/Database.java b/src/main/java/db/Database.java new file mode 100644 index 0000000..2829bb1 --- /dev/null +++ b/src/main/java/db/Database.java @@ -0,0 +1,20 @@ +package db; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; + +public final class Database { + public static final String URL = "jdbc:sqlite:givehope.db"; + public static Connection getConnection() throws SQLException { + Connection conn = DriverManager.getConnection(URL); + + try (Statement stmt = conn.createStatement()) { + stmt.execute("PRAGMA foreign_keys = ON;"); + } + + return conn; + } + +} diff --git a/src/main/java/model/User.java b/src/main/java/model/User.java index ccb8779..95e6073 100644 --- a/src/main/java/model/User.java +++ b/src/main/java/model/User.java @@ -5,7 +5,7 @@ public class User { private String userName; private String phoneNumber; - private final String eMail; + private String eMail; private String password; public User(String userName, String phoneNumber, String password, String eMail) { diff --git a/src/main/resources/givehope.db b/src/main/resources/givehope.db index e69de29..b8d1283 100644 Binary files a/src/main/resources/givehope.db and b/src/main/resources/givehope.db differ diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql new file mode 100644 index 0000000..5a49607 --- /dev/null +++ b/src/main/resources/schema.sql @@ -0,0 +1,33 @@ +PRAGMA foreign_keys = ON; + +CREATE TABLE IF NOT EXISTS user ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + e_mail TEXT NOT NULL UNIQUE, + password_hash TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS organization ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + description TEXT +); + +CREATE TABLE IF NOT EXISTS cause ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + description TEXT, + organization_id INTEGER NOT NULL, + FOREIGN KEY (organization_id) REFERENCES organization(id) + ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS donation ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + amount REAL NOT NULL, + donation_date TEXT NOT NULL, + user_id INTEGER, + cause_id INTEGER NOT NULL, + FOREIGN KEY (user_id) REFERENCES user(id), + FOREIGN KEY (cause_id) REFERENCES cause(id) + ); \ No newline at end of file