Skip to content
Snippets Groups Projects
Commit cd1c5f19 authored by Gehrung Jonas's avatar Gehrung Jonas
Browse files

Add: Methods for Requests to Database, Implents Interface IDataBase. This Commit fixes issue #16

parent a70b3efb
No related branches found
No related tags found
2 merge requests!7Merge DataBase to development,!6Merging from Database to development
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="battleArena@battlearena.database.windows.net" uuid="7b1fc391-14cb-46cf-a8a0-29c091f02047">
<driver-ref>azure.ms</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</jdbc-driver>
<jdbc-url>jdbc:sqlserver://battlearena.database.windows.net:1433;database=battleArena;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$/src/main/java/de/hdm_stuttgart/battlearena/Persistance/Scripts/DDL_Script.sql" dialect="GenericSQL" />
<file url="PROJECT" dialect="AZURE" />
</component>
</project>
\ No newline at end of file
package de.hdm_stuttgart.battlearena.Persistance.Classes;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Properties;
import java.sql.*;
public class DataBase implements IDataBase {
private static final Logger log = LogManager.getLogger(DataBase.class);
@Override
public Connection connect() throws IOException, SQLException {
log.info("Loading the properties File!");
Properties properties = new Properties();
properties.load(getClass().getClassLoader().getResourceAsStream("config.properties"));
log.info("Connecting to the database!");
Connection connection = DriverManager.getConnection(properties.getProperty("url"), properties.getProperty("user"), properties.getProperty("password"));
log.info("Database connection test" + connection.getCatalog());
connection.setAutoCommit(true);
return connection;
}
@Override
public void createNewPlayer(String playerName) throws SQLException, IOException {
Connection connection = connect();
String sql = "INSERT INTO players (player_name, games_won, games_lost, kills, deaths, blocks_destroyed, ingame_time)" + "VALUES (?,?,?,?,?,?,?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, playerName);
preparedStatement.setInt(2, 0);
preparedStatement.setInt(3, 0);
preparedStatement.setInt(4, 0);
preparedStatement.setInt(5, 0);
preparedStatement.setInt(6, 0);
preparedStatement.setInt(7, 0);
preparedStatement.execute();
connection.close();
}
@Override
public void createMap(String name, int length, int width, String mapData) throws SQLException, IOException {
Connection connection = connect();
String mapSize = length + "X" + width;
String sql = "INSERT INTO battleArena.dbo.maps (map_name, map_size, map_data) VALUES(?,?,?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, name);
preparedStatement.setString(2, mapSize);
preparedStatement.setString(3, mapData);
preparedStatement.execute();
connection.close();
}
@Override
public LinkedHashMap<String, String> getMapNames() throws SQLException, IOException {
LinkedHashMap<String, String> mapNames = new LinkedHashMap<>();
Connection connection = connect();
String sql = "SELECT maps.map_id, maps.map_name FROM maps";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet results = preparedStatement.executeQuery();
while (results.next()) {
mapNames.put(results.getString("map_id"), results.getString("map_name"));
}
connection.close();
return mapNames;
}
@Override
public String getMapByID(String ID) throws SQLException, IOException {
Connection connection = connect();
String sql = "SELECT map_name FROM maps WHERE map_id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, ID);
String map = preparedStatement.executeQuery().toString();
connection.close();
return map;
}
@Override
public String getMapSizeByID(String ID) throws SQLException, IOException {
Connection connection = connect();
String sql = "SELECT map_size FROM maps WHERE battleArena.dbo.maps.map_id=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, ID);
ResultSet result = preparedStatement.executeQuery();
String mapSize = result.getString("map_size");
connection.close();
return mapSize;
}
@Override
public ResultSet getStatistics(String playerName) throws SQLException, IOException {
Connection connection = connect();
String sql = "SELECT * FROM players where player_name = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, playerName);
ResultSet resultSet = preparedStatement.executeQuery();
connection.close();
return resultSet;
}
@Override
public void updateMap(String mapID, String mapName, String mapData) throws SQLException, IOException {
Connection connection = connect();
String sql = "UPDATE maps SET map_name = ?, map_data = ? WHERE map_id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, mapName);
preparedStatement.setString(2, mapData);
preparedStatement.setString(3, mapID);
preparedStatement.execute();
connection.close();
}
@Override
public void updatePlayerName(String playerNameNew, String playerNameOld) throws SQLException, IOException {
Connection connection = connect();
String sql = "UPDATE players SET player_name = ? WHERE player_name = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, playerNameNew);
preparedStatement.setString(2, playerNameOld);
preparedStatement.execute();
connection.close();
}
@Override
public void updatePlayerStatistics(String playerName, int gamesWon, int gamesLost, int kills, int deaths, int blocksDestroyed, int gameTime) throws SQLException, IOException {
Connection connection = connect();
String sql = "UPDATE players SET games_won = ?, games_lost = ?, kills = ?, " + "deaths = ?, blocks_destroyed = ?, ingame_time = ? WHERE player_name = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, gamesWon);
preparedStatement.setInt(2, gamesLost);
preparedStatement.setInt(3, kills);
preparedStatement.setInt(4, deaths);
preparedStatement.setInt(5, blocksDestroyed);
preparedStatement.setInt(6, gameTime);
preparedStatement.setString(7, playerName);
preparedStatement.execute();
connection.close();
}
@Override
public void deletePlayer(String playerName) throws IOException, SQLException {
Connection connection = connect();
String sql = "DELETE FROM players WHERE player_name=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, playerName);
preparedStatement.execute();
connection.close();
}
@Override
public void deleteMap(String mapID) throws SQLException, IOException {
Connection connection = connect();
String sql = "DELETE * FROM maps WHERE map_id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, mapID);
preparedStatement.execute();
connection.close();
}
}
package de.hdm_stuttgart.battlearena.Persistance;
package de.hdm_stuttgart.battlearena.Persistance.Classes;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class DataBase implements IDataBase{
private static final Logger log = LogManager.getLogger(DataBase.class);
public class MapData {
private static final Logger log = LogManager.getLogger(MapData.class);
}
package de.hdm_stuttgart.battlearena.Persistance.Classes;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class Persistence {
private static final Logger log = LogManager.getLogger(Persistence.class);
}
package de.hdm_stuttgart.battlearena.Persistance.Classes;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class PlayerStatistics {
private static final Logger log = LogManager.getLogger(PlayerStatistics.class);
}
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