Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Manipulation de la base de donnée

SQLite

    29 décembre 2012 à 18:36:48

    Bonjour, j'ai créé ma Classe "ManipBDD" à côté de mon "MainActivity" dans mon Android Application Project

    Dans la classe ManipBDD, j'ai créé ma Base et ma Table et j'y est inséré les tuples dans la table.

    J'aimerai maintenant pouvoir affiché ces données avec des "SELECT" à partir de mes activity, par exemple dans le MainActivity.

    Comment faire? Merci !

    PS : Je ne suis pas passé par le DAO
    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2012 à 18:52:58

      Bonsoir,

      Un chapitre sur les bases de données figure sur le tutoriel officiel Android du Site du Zéro.

      Cela devrait résoudre ton problème. :)
      • Partager sur Facebook
      • Partager sur Twitter
      Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
        30 décembre 2012 à 11:02:21

        Justement je suis passé par ce chapitre pour faire ce que j'ai fait.
        Le chapitre parle juste de comment créer une base, une table, ainsi que la syntaxe des requêtes dans une classe à part les activitées.

        Mais elle ne dit rien sur comment utiliser cette classe dans une activity afin de faire une requête de type SELECT par exemple

        Voici ma classe qui créer la base, la table, et insert les données :
        package com.example.reseaulu;
        
        import java.io.BufferedReader;
        import java.io.FileInputStream;
        import java.io.InputStream;
        import java.io.InputStreamReader;
        
        import android.content.Context;
        import android.database.sqlite.SQLiteDatabase;
        import android.database.sqlite.SQLiteDatabase.CursorFactory;
        import android.database.sqlite.SQLiteOpenHelper;
        
        public abstract class ManipBDD extends SQLiteOpenHelper
        {
        
        	public ManipBDD(Context context, String name, CursorFactory factory, int version) 
        	{
        		super(context, name, factory, version);
        		// TODO Auto-generated constructor stub
        	}
        
        	public static final String ID = "id";
                public static final String NUM = "numero";
        	public static final String ITINERAIRE = "itineraire";
        	public static final String DATE = "date";
        	public static final String ARRET = "arret";
        	public static final String HORAIRE = "horaire";
        	    
        	public static final String TABLE_NAME = "Ligne";
        	public static final String TABLE_CREATE =
        	    "CREATE TABLE " + TABLE_NAME + " (" +
        	      ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
        	      NUM + " TEXT, " +
        	      ITINERAIRE + " TEXT, " +
        	      DATE + " TEXT, " +
        	      ARRET + " TEXT, " +
        	      HORAIRE + " TEXT);";
        	public String TABLE_INSERT = "";
        
        	public static final String TABLE_DROP = "DROP TABLE IF EXISTS " + TABLE_NAME + ";";
        
        	@Override
        	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
        	{
        		 db.execSQL(TABLE_DROP);
        		 onCreate(db);
        	}
        		
        	 @Override
        	 public void onCreate(SQLiteDatabase db)
        	 {
        		 String fichier = "ligne.txt";
        		 	
        		 db.execSQL(TABLE_CREATE); 
        		 
        		 try 
        		 {
        			InputStream ips = new FileInputStream(fichier); 
        			InputStreamReader ipsr = new InputStreamReader(ips);
        			BufferedReader br = new BufferedReader(ipsr);
        			String ligne;
        			String str[];
        			
        					
        			while ((ligne=br.readLine())!=null)
        			{
        				str = ligne.split("/");
        				TABLE_INSERT = "INSERT INTO Ligne ("+ID+","+NUM+","+ITINERAIRE+","+DATE+","+ARRET+","+HORAIRE+") VALUES (' ',"+str[0]+","+str[1]+","+str[2]+","+str[3]+";"+str[4]+");";
        				db.execSQL(TABLE_INSERT);
        				TABLE_INSERT="";
        			}
        			br.close(); 
        		 }
        		catch (Exception e)
        		{
        			System.out.println(e.toString());
        		}
        	 }
        }
        


        Voici ma classe MainActivity :
        package com.example.reseaulu;
        
        import android.os.Bundle;
        import android.app.Activity;
        import android.view.Menu;
        
        public class MainActivity extends Activity {
        	
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
            }
        
            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.activity_main, menu);
                return true;
            }
            
        }
        


        J'aimerai dans la classe mainActivity qui représente la page d'accueil de mon application, faire des sélection sur la table "Ligne" du genre : SELECT * FROM Ligne; SELECT horaire FROM Ligne;
        • Partager sur Facebook
        • Partager sur Twitter
          31 décembre 2012 à 12:37:50

          Pour ce faire, tu dois passer par les DAO expliquer dans ce même chapitre que je t'ai indiqué plus haut.
          • Partager sur Facebook
          • Partager sur Twitter
          Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.
            31 décembre 2012 à 13:30:20

            Ah d'accord, je pensais que j'aurai pu éviter le DAO
            • Partager sur Facebook
            • Partager sur Twitter
              1 janvier 2013 à 12:17:35

              DAO signifie Data Access Object (Accès aux objets de données) chose que tu sembles vouloir faire. ^^
              • Partager sur Facebook
              • Partager sur Twitter
              Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.

              [Android] Manipulation de la base de donnée

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown