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
-
Twinuts
Messages postés
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 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
5345
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
11 février 2020
90
Salut,

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



Messages postés
16116
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 février 2020
89
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();
}