Transformer un ArrayList java, en bdd android

Signaler
Messages postés
5
Date d'inscription
dimanche 4 décembre 2016
Statut
Membre
Dernière intervention
19 février 2018
-
Messages postés
5348
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 mars 2020
-
Bonjour,

je suis actuellement face à un probleme qui me bloque dans un petit projet:

J'ai un file .txt qui contient une liste d'elements formatés que je dois injecter dans une base de données pour une application android.
J'ai reussi premierement à manipuler une bdd avec SQLite sur Android studio. Mais j'avais entré les valeurs à la fin.

J'ai donc mon .txt composé d elements de cette forme:
<nom objet>
[{x0,y1},{x1,y0}];
<autre objet>
[{x0,y0}];

J'ai fais un code en java (bondiouss c etait long...) qui crée un ArrayList<Indice> listIndice, avec Indice une classe que j'ai fait qui est composée d'un id, d'un nom, d'un x, et d'un y.

Mon ArrayList rempli d'indices, j'aimerai savoir, auriez vous une idée de comment exploiter ces Indices pour en faire une base de donnée exploitable par Android Studio, des tutos, des docs, des outils?
Je m'en remet à vous,
Cordialement Sungeon.

2 réponses

Messages postés
5348
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 mars 2020
95
Salut,

Utilise la librairie Room Persistence sous Android pour transformer ta classe Indice en table sqlite.



Messages postés
16223
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 mai 2020
92
Bonjour,

Si tu as une liste d'Indice côté Java avec id, nom, x, y, il te faut une table en base de données avec les colonnes id, nom, x, y de manière équivalente.

Après c'est juste de la manipulation de base de données en Java.
https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

Exemple :

String sql = "insert into INDICE values (?, ?, ?, ?)";
try (Connection conn = DriverManager.getConnection(url, usr, pwd);
        PreparedStatement stmt = conn.prepareStatement(sql)) {
    for (Indice indice : indices) {
        stmt.setInt(1, indice.getId());
        stmt.setString(2, indice.getName());
        stmt.setDouble(3, indice.getX());
        stmt.setDouble(4, indice.getY());
        stmt.addBatch();
    }
    stmt.executeBatch();
} catch (SQLException e) {
    e.printStackTrace();
}