M431-ShadowHunterGame/src/database/QueryGenerator.java
2020-05-06 13:26:53 +02:00

88 lines
2.5 KiB
Java

package database;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class QueryGenerator {
private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase";
private final static String user = "shManager";
private final static String password = "shadowhunter1234";
public static String AllFrom(String tableName) {
return "SELECT * FROM " + getTable(tableName);
}
public static String WithId(String tableName, int d) {
return "SELECT * FROM " + getTable(tableName) + "WHERE id =" + d;
}
public static String WithName(String tableName, String name) {
return "SELECT * FROM " + getTable(tableName) + "WHERE nom ='" + name + "'";
}
public static String getTable(String tableName) {
return "public." + '"' + tableName + '"';
}
public static String getIdWithNameFrom(String table, String name) {
return "SELECT 'id' FROM " + getTable(table) + "WHERE nom ='" + name + "'";
}
public static String getNameWithIdFrom(String table, int d) {
return "SELECT name FROM " + getTable(table) + "WHERE id =" + d;
}
public static String selectObjectWithId(int id, String tableName) {
return "SELECT objet FROM" + getTable(tableName) + " WHERE id =" + id;
}
public static Connection connect() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void queryInsertObject(int id, Object o) throws IOException, SQLException {
String table = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos;
oos = new ObjectOutputStream(baos);
oos.writeObject(o);
oos.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
byte[] object = bais.readAllBytes();
InputStream objectIS = new ByteArrayInputStream(object);
if(id <= 16) {
table = getTable("CartesLumiere");
} else if(id <= 32) {
table = getTable("CartesTenebre");
} else if(id <= 47) {
table = getTable("CartesVision");
} else if(id <= 57) {
table = getTable("CartesPersonnage");
} else if(id <= 61) {
table = getTable("CartesDos");
}
String query = null;
query = "UPDATE" + table + " SET objet = ";
Connection conn = connect();
PreparedStatement pst = conn.prepareStatement(query);
pst.setBinaryStream(4, objectIS);
pst.executeUpdate();
}
}