Récupération objet bdd

This commit is contained in:
Paul Gross
2020-05-05 13:13:21 +02:00
parent 40ad1cb599
commit 222605628c
14 changed files with 158 additions and 44 deletions

View File

@ -3,7 +3,6 @@ package database;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;

View File

@ -0,0 +1,93 @@
package database;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import carte.CartePiochable;
import condition.Condition;
import effet.EffetSelf;
import effet.action.ActionAltererStatistiquesJoueur;
import main.Joueur;
public class TestAddingCard {
private final static String url = "jdbc:postgresql://localhost:5432/ShadowHunterDatabase";
private final static String user = "shManager";
private final static String password = "shadowhunter1234";
public static void main(String[] args) {
CartePiochable<?> instance = new CartePiochable(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_HP, 2, true)), new Condition());
try {
insertCartePiochable(instance);
System.out.println(retrieveCartePiochable(0).getEffet());
} catch (IOException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection connect() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void insertCartePiochable(CartePiochable<?> instance) throws IOException, SQLException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos;
oos = new ObjectOutputStream(baos);
oos.writeObject(instance);
oos.close();
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
byte[] object = bais.readAllBytes();
InputStream objectIS = new ByteArrayInputStream(object);
String sql = "INSERT INTO public.\"Test\"" + "VALUES(?)";
Connection conn = connect();
PreparedStatement pst = conn.prepareStatement(sql);
pst.setBinaryStream(1, objectIS);
pst.executeUpdate();
}
public static CartePiochable<?> retrieveCartePiochable(int pos) throws IOException, SQLException, ClassNotFoundException {
Connection conn = connect();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM public.\"Test\"");
byte[] object = null;
if(rs.next()) {
object = rs.getBytes(1);
}
ByteArrayInputStream in = new ByteArrayInputStream(object);
ObjectInputStream is = new ObjectInputStream(in);
return (CartePiochable<?>) is.readObject();
}
}