Skip to content

Made database structure. Started to implement the database system. Cr… #13

Merged
merged 1 commit into from
Mar 3, 2026
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added givehope.db
Empty file.
12 changes: 12 additions & 0 deletions src/main/java/app/Main.java
Original file line number Diff line number Diff line change
@@ -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();
}
}
}
4 changes: 4 additions & 0 deletions src/main/java/dao/CauseDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package dao;

public class CauseDao {
}
4 changes: 4 additions & 0 deletions src/main/java/dao/DonationDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package dao;

public class DonationDao {
}
4 changes: 4 additions & 0 deletions src/main/java/dao/OrganizationDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package dao;

public class OrganizationDao {
}
21 changes: 21 additions & 0 deletions src/main/java/dao/UserDao.java
Original file line number Diff line number Diff line change
@@ -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);
}

}
}
20 changes: 20 additions & 0 deletions src/main/java/db/Database.java
Original file line number Diff line number Diff line change
@@ -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;
}

}
2 changes: 1 addition & 1 deletion src/main/java/model/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
Binary file modified src/main/resources/givehope.db
Binary file not shown.
33 changes: 33 additions & 0 deletions src/main/resources/schema.sql
Original file line number Diff line number Diff line change
@@ -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)
);
Loading