Skip to content
Snippets Groups Projects
Commit b812e987 authored by Schuh Martin's avatar Schuh Martin
Browse files

Update: DDL_Script_Oracle.sql (Minor fix to allow UPDATE privilege in...

Update: DDL_Script_Oracle.sql (Minor fix to allow UPDATE privilege in communitymaps table in "map_downloads" column)
Update: AzureDB.java (minor fixes + code to update download-counter when downloading community map from SQL Server)
Update: OracleDB.java (minor fixes + code to update download-counter when downloading community map from SQL Server)
parent 9c8bbe54
No related branches found
No related tags found
4 merge requests!74V1,!73Initial commit,!71Merge DataBase into Development,!8Merge database branch into development branch
......@@ -80,7 +80,7 @@ public class AzureDB implements ISQLDataBase {
public ArrayList<MapInfo> getCommunityMapsList() throws DatabaseError{
try(Connection connection = connect()) {
ArrayList<MapInfo> tempList = new ArrayList<MapInfo>();
String sql = "SELECT map_id, map_name, map_width, map_height, map_downloads FROM battlearenadata.communitymaps";
String sql = "SELECT map_id, map_name, map_width, map_height, map_downloads FROM communitymaps";
PreparedStatement stmt = connection.prepareStatement(sql);
log.info("Sending SQL statement");
......@@ -103,18 +103,27 @@ public class AzureDB implements ISQLDataBase {
@Override
public MapData getCommunityMapByID(String mapID) throws DatabaseError{
try(Connection connection = connect()) {
String sql = "SELECT * FROM battlearenadata.communitymaps WHERE map_ID = ?";
String sql = "SELECT * FROM communitymaps WHERE map_ID = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, mapID);
log.info("Sending SQL statement");
ResultSet rs = stmt.executeQuery();
MapData mapChosen = new MapData(rs.getString("map_id"), rs.getString("map_name"), rs.getInt("map_width"), rs.getInt("map_height"), rs.getString("map_data"));
MapData mapChosen = new MapData("", "",0,0, "");
while(rs.next()) {
mapChosen = new MapData(rs.getString("map_id"), rs.getString("map_name"), rs.getInt("map_width"), rs.getInt("map_height"), rs.getString("map_data"));
}
rs.close();
stmt.close();
log.info("Community map retrieved successfully");
String sql2 = "UPDATE communitymaps SET map_downloads = map_downloads + 1 WHERE map_id = ?";
PreparedStatement stmt2 = connection.prepareStatement(sql2);
stmt2.setString(1, mapID);
stmt2.executeQuery();
log.info("Sending SQL statement to update Download-Counter");
stmt2.close();
return mapChosen;
}
catch(Exception e){
......@@ -126,7 +135,7 @@ public class AzureDB implements ISQLDataBase {
@Override
public void uploadCommunityMap(MapData map) throws DatabaseError{
try(Connection connection = connect()) {
String sql = "INSERT INTO battlearenadata.communitymaps (map_id, map_name, map_width, map_height, map_data) VALUES (?, ?, ?, ?, ?)";
String sql = "INSERT INTO communitymaps (map_id, map_name, map_width, map_height, map_data) VALUES (?, ?, ?, ?, ?)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, map.getMapID());
stmt.setString(2, map.getMapName());
......@@ -149,7 +158,7 @@ public class AzureDB implements ISQLDataBase {
@Override
public void createPlayer(String playerName, String playerPW) throws DatabaseError{
try(Connection connection = connect()) {
String sql = "INSERT INTO battlearenadata.players (player_name, player_pw, games_won, games_lost, kills, deaths, blocks_destroyed, ingame_time) VALUES (?, ?, 0, 0, 0, 0, 0, 0)";
String sql = "INSERT INTO players (player_name, player_pw, games_won, games_lost, kills, deaths, blocks_destroyed, ingame_time) VALUES (?, ?, 0, 0, 0, 0, 0, 0)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, playerName);
stmt.setString(2, playerPW);
......@@ -169,15 +178,17 @@ public class AzureDB implements ISQLDataBase {
@Override
public String checkCredentials(String playerName) throws DatabaseError{
try(Connection connection = connect()) {
String sql = "SELECT player_pw FROM battlearenadata.players WHERE player_name = ?";
String sql = "SELECT player_pw FROM players WHERE player_name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, playerName);
log.info("Sending SQL statement");
ResultSet rs = stmt.executeQuery();
String password = rs.getString("player_pw");
String password = "";
while(rs.next()) {
password = rs.getString("player_pw");
}
rs.close();
stmt.close();
log.info("Player credentials retrieved successfully");
......@@ -192,15 +203,17 @@ public class AzureDB implements ISQLDataBase {
@Override
public PlayerStatistics getStatistics(String playerName) throws DatabaseError{
try(Connection connection = connect()) {
String sql = "SELECT games_won, games_lost, kills, deaths, blocks_destroyed, ingame_time FROM battlearenadata.players WHERE player_name = ?";
String sql = "SELECT games_won, games_lost, kills, deaths, blocks_destroyed, ingame_time FROM players WHERE player_name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, playerName);
log.info("Sending SQL statement");
ResultSet rs = stmt.executeQuery();
PlayerStatistics stats = new PlayerStatistics(true, rs.getInt("games_won"), rs.getInt("games_lost"), rs.getInt("kills"), rs.getInt("deaths"), rs.getInt("blocks_destroyed"), rs.getInt("ingame_time"));
PlayerStatistics stats = new PlayerStatistics(false, 0, 0, 0, 0, 0, 0);
while(rs.next()) {
stats = new PlayerStatistics(true, rs.getInt("games_won"), rs.getInt("games_lost"), rs.getInt("kills"), rs.getInt("deaths"), rs.getInt("blocks_destroyed"), rs.getInt("ingame_time"));
}
rs.close();
stmt.close();
log.info("Player statistics retrieved successfully");
......@@ -215,7 +228,7 @@ public class AzureDB implements ISQLDataBase {
@Override
public void updatePlayerStats(PlayerStatistics stats, PlayerAccount account) throws DatabaseError{
try(Connection connection = connect()) {
String sql = "UPDATE battlearenadata.players SET games_won = ?, games_lost = ?, kills = ?, deaths = ?, blocks_destroyed = ?, ingame_time = ? WHERE player_name = ?";
String sql = "UPDATE players SET games_won = ?, games_lost = ?, kills = ?, deaths = ?, blocks_destroyed = ?, ingame_time = ? WHERE player_name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, stats.getGamesWon());
stmt.setInt(2, stats.getGamesLost());
......@@ -226,6 +239,7 @@ public class AzureDB implements ISQLDataBase {
stmt.setString(7, account.getPlayerName());
log.info("Sending SQL statement");
stmt.executeQuery();
stmt.close();
log.info("Player statistics updated successfully");
......
......@@ -108,12 +108,21 @@ public class OracleDB implements ISQLDataBase {
log.info("Sending SQL statement");
ResultSet rs = stmt.executeQuery();
MapData mapChosen = new MapData(rs.getString("map_id"), rs.getString("map_name"), rs.getInt("map_width"), rs.getInt("map_height"), rs.getString("map_data"));
MapData mapChosen = new MapData("", "",0,0, "");
while(rs.next()) {
mapChosen = new MapData(rs.getString("map_id"), rs.getString("map_name"), rs.getInt("map_width"), rs.getInt("map_height"), rs.getString("map_data"));
}
rs.close();
stmt.close();
log.info("Community map retrieved successfully");
String sql2 = "UPDATE battlearenadata.communitymaps SET map_downloads = map_downloads + 1 WHERE map_id = ?";
PreparedStatement stmt2 = connection.prepareStatement(sql2);
stmt2.setString(1, mapID);
stmt2.executeQuery();
log.info("Sending SQL statement to update Download-Counter");
stmt2.close();
return mapChosen;
}
catch(Exception e){
......@@ -175,8 +184,10 @@ public class OracleDB implements ISQLDataBase {
log.info("Sending SQL statement");
ResultSet rs = stmt.executeQuery();
String password = rs.getString("player_pw");
String password = "";
while(rs.next()) {
password = rs.getString("player_pw");
}
rs.close();
stmt.close();
log.info("Player credentials retrieved successfully");
......@@ -198,8 +209,10 @@ public class OracleDB implements ISQLDataBase {
log.info("Sending SQL statement");
ResultSet rs = stmt.executeQuery();
PlayerStatistics stats = new PlayerStatistics(true, rs.getInt("games_won"), rs.getInt("games_lost"), rs.getInt("kills"), rs.getInt("deaths"), rs.getInt("blocks_destroyed"), rs.getInt("ingame_time"));
PlayerStatistics stats = new PlayerStatistics(false, 0, 0, 0, 0, 0, 0);
while(rs.next()) {
stats = new PlayerStatistics(true, rs.getInt("games_won"), rs.getInt("games_lost"), rs.getInt("kills"), rs.getInt("deaths"), rs.getInt("blocks_destroyed"), rs.getInt("ingame_time"));
}
rs.close();
stmt.close();
log.info("Player statistics retrieved successfully");
......@@ -225,6 +238,7 @@ public class OracleDB implements ISQLDataBase {
stmt.setString(7, account.getPlayerName());
log.info("Sending SQL statement");
stmt.executeQuery();
stmt.close();
log.info("Player statistics updated successfully");
......
......@@ -47,7 +47,7 @@ public class CryptoUtils{
byte[] outputBytes = cipher.doFinal(inputBytes);
String completeString = new String(outputBytes, StandardCharsets.UTF_8);
System.out.println(completeString);
//System.out.println(completeString);
parts = completeString.split(";");
//FileOutputStream outputStream = new FileOutputStream(outputFile);
......
......@@ -87,4 +87,6 @@ GRANT SELECT ON battlearenadata.coremaps TO battlearenaplayer;
GRANT SELECT, INSERT ON battlearenadata.communitymaps TO battlearenaplayer;
GRANT SELECT, INSERT, UPDATE ON battlearenadata.players TO battlearenaplayer;
\ No newline at end of file
GRANT SELECT, INSERT, UPDATE ON battlearenadata.players TO battlearenaplayer;
GRANT UPDATE (map_downloads) ON battlearenadata.communitymaps TO battlearenaplayer;
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment