Skip to content

done #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
3 changes: 2 additions & 1 deletion Database-Workshop/.idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Database-Workshop/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ repositories {
dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
implementation 'org.postgresql:postgresql:42.7.3'
}

test {
Expand Down
98 changes: 94 additions & 4 deletions Database-Workshop/src/main/java/org/project/DatabaseManager.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.project;

import org.project.Models.Club;
import org.project.Models.Player;

import java.sql.Connection;
Expand All @@ -9,9 +10,9 @@

public class DatabaseManager {
// todo: modify these constants to connect to database
private static final String JDBC_URL = "jdbc:postgresql://localhost:5432/workshop";
private static final String JDBC_URL = "jdbc:postgresql://localhost:5432/Workshop";
private static final String USERNAME = "postgres";
private static final String PASSWORD = "password";
private static final String PASSWORD = "Partow@1384";

// a method to connect to database with credentials given
private static Connection connect() throws SQLException {
Expand All @@ -20,14 +21,103 @@ private static Connection connect() throws SQLException {

public static void createPlayer(Player player) throws SQLException {
Connection conn = connect();

// todo: fill the query to create a player
String query = "";
String query = "INSERT INTO players (id, full_name, club_id) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setObject(1, player.getId());
ps.setString(2, player.getFullName());
ps.setObject(3, player.getClubId());
// todo: set values of the prepared statement
ps.executeUpdate();
ps.close();
conn.close();
}

public static void createClub(Club club) throws SQLException {
Connection conn = connect();
String query = "INSERT INTO clubs (id, title, manager) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setObject(1, club.getId());
ps.setString(2, club.getTitle());
ps.setString(3, club.getManager());

ps.executeUpdate();
ps.close();
conn.close();

}



// todo: create methods to complete the task of workshop
}
public static void printAllClubs() throws SQLException {
String query = "SELECT * FROM clubs";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(query);
var rs = ps.executeQuery()) {
System.out.println("Clubs:");
while (rs.next()) {
System.out.println("ID: " + rs.getObject("id")
+ ", Title: " + rs.getString("title")
+ ", Manager: " + rs.getString("manager"));
}
}
}


public static void printAllPlayers() throws SQLException {
String query = "SELECT * FROM players";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(query);
var rs = ps.executeQuery()) {
System.out.println("Players:");
while (rs.next()) {
System.out.println("ID: " + rs.getObject("id")
+ ", Full Name: " + rs.getString("full_name")
+ ", Club ID: " + rs.getObject("club_id"));
}
}
}

public static void updatePlayerClub(String playerFullName, Object newClubId) throws SQLException {
String query = "UPDATE players SET club_id = ? WHERE full_name = ?";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(query)) {
ps.setObject(1, newClubId);
ps.setString(2, playerFullName);
ps.executeUpdate();
}
}


public static void updateClubManager(String clubTitle, String newManager) throws SQLException {
String query = "UPDATE clubs SET manager = ? WHERE title = ?";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, newManager);
ps.setString(2, clubTitle);
ps.executeUpdate();
}
}

public static void deletePlayer(String playerFullName) throws SQLException {
String query = "DELETE FROM players WHERE full_name = ?";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, playerFullName);
ps.executeUpdate();
}
}


public static void deleteClub(String clubTitle) throws SQLException {
String query = "DELETE FROM clubs WHERE title = ?";
try (Connection conn = connect();
PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, clubTitle);
ps.executeUpdate();
}
}

}
32 changes: 30 additions & 2 deletions Database-Workshop/src/main/java/org/project/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,47 @@
import org.project.Models.Club;
import org.project.Models.Player;

import java.sql.SQLException;
import java.util.UUID;

public class Main {
public static void main(String[] args) {
public static void main(String[] args) throws SQLException {
// club instances
Club club1 = new Club(UUID.randomUUID(), "Real Madrid", "Carlo Ancelotti");
Club club2 = new Club(UUID.randomUUID(), "Liverpool", "Arne Slot");

DatabaseManager.createClub(club1);
DatabaseManager.createClub(club2);

// player instances
Player player1 = new Player(UUID.randomUUID(), "Thibaut Courtois", club1.getId());
Player player2 = new Player(UUID.randomUUID(), "Jude Bellingham", club1.getId());
Player player3 = new Player(UUID.randomUUID(), "Trent Alexander-Arnold", club2.getId());
Player player4 = new Player(UUID.randomUUID(), "Federico Valverde", club1.getId());

// todo: call methods to run queries
DatabaseManager.createPlayer(player1);
DatabaseManager.createPlayer(player2);
DatabaseManager.createPlayer(player3);
DatabaseManager.createPlayer(player4);

System.out.println("Initial data:");
DatabaseManager.printAllClubs();
DatabaseManager.printAllPlayers();


DatabaseManager.updatePlayerClub("Trent Alexander-Arnold", club1.getId());
DatabaseManager.updateClubManager("Real Madrid", "Xabi Alonso");

System.out.println("\nAfter update:");
DatabaseManager.printAllClubs();
DatabaseManager.printAllPlayers();


DatabaseManager.deletePlayer("Jude Bellingham");
DatabaseManager.deleteClub("Liverpool");

System.out.println("\nAfter delete:");
DatabaseManager.printAllClubs();
DatabaseManager.printAllPlayers();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ public String getManager() {
public void setManager(String manager) {
Manager = manager;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ public UUID getClubId() {
public void setClubId(UUID clubId) {
this.clubId = clubId;
}
}
}