Récupérer une variable Skript (BDD)
-
Bonjour, je voudrais savoir s’il est possible de récupérer une variable Skript (un plugin qui permet de coder tout un tas de fonctionnalité) sur son mod ? Cette variable peut-être hébergée sur une Base De Données.
L’objectif est d’afficher cette variable dans une interface graphique. Merci
-
Salut,
Si c’est en base de donné tu peux récupérer sans problème depuis le mod avec une requête sql.
Par contre il faudra ensuite un paquet pour l’envoyer au client et l’afficher dans le gui. -
@‘robin4002’:
Salut,
Si c’est en base de donné tu peux récupérer sans problème depuis le mod avec une requête sql.
Par contre il faudra ensuite un paquet pour l’envoyer au client et l’afficher dans le gui.D’accord je vais chercher de ce côté la merci
-
Tu pourrais m’expliquer comment le faire ? Je suis un peu perdu là.
-
Tu bloque sur quel point ?
-
@‘robin4002’:
Tu bloque sur quel point ?
Le système de requête SQL, je vois pas trop comment mettre en place tout ça
-
J’imagine que la db est géré par mysql ?
Si oui, faut passer par la lib mysql-connector-java -
Du coup avec un ami modder on a récupéré des variables de la base de données mais celle-ci sont en “BLOB” et on ne sait pas comment les convertir en “int” ou autre, si quelqu’un sait comment faire ?
-
Ton code ressemble à quoi ?
Car perso avec mysql-connector-java je récupère un ResultSet à l’exécution d’un query et ensuite je peux avoir un int, double, float, String, etc … en précisant le nom de la colonne. -
@‘robin4002’:
Ton code ressemble à quoi ?
Car perso avec mysql-connector-java je récupère un ResultSet à l’exécution d’un query et ensuite je peux avoir un int, double, float, String, etc … en précisant le nom de la colonne.En fait avec Skript (le plugin minecraft) la value est de base enregistrée en Blob.
-
Voici le code
public static void Read(String argent2) { try { MySQLAccess.connection(); PreparedStatement q = conn.prepareStatement("SELECT value FROM variables21 WHERE name = ?"); q.setString(1, argent2); ResultSet result = q.executeQuery(); while(result.next()) { Blob blob = result.getBlob("value"); System.out.println(blob); } q.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
actuellement il me retourne ceci
[19:26:40] [Client thread/INFO] [STDOUT]: [joueur.MySQLAccess:connection:44]: Je me suis connecte a la BDD! [19:26:40] [Client thread/INFO] [STDOUT]: [joueur.MySQLAccess:Readkamas:167]: com.mysql.jdbc.Blob@56c45636
-
Tu peux faire result.getInt(“value”);
-
çà ne fonctionne pas
[19:34:19] [Client thread/INFO] [STDOUT]: [joueur.MySQLAccess:connection:44]: Je me suis connecte a la BDD! [19:34:19] [Client thread/INFO] [STDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.sql.SQLException: Invalid value for getInt() - '
-
Quel est la structure de la table dans la base ?
-
Elle se présente comme ça pour tous :
Le blob se met automatiquement je ne peux pas le changer (à ma connaissance) :
-
Ah oui value est du type blob, donc un objet binaire.
Il faut voir au niveau de skrip comment elle est écrite et lu pour trouver comment l’exploiter. -
@‘robin4002’:
Ah oui value est du type blob, donc un objet binaire.
Il faut voir au niveau de skrip comment elle est écrite et lu pour trouver comment l’exploiter.On a déjà tenté et il existe très peu d’infos voir aucune de ce côté, cette structure est créée automatiquement et si on tente de modifier manuellement elles deviennent “fixes”.