Android: SQLite Tabelle per LogCat ausgeben

Jeder Android-Entwickler kennt das Problem: Der DDMS (Dalvik Debug Monitor Server) in Eclipse bietet einen File Explorer, diverse Network Statistics und andere Threads, CPU und Memory Tools. ABER WO ZUM TEUFEL kann ich mir meine SQLite Tabellen anschauen?!

 

 

 

Die Methode

Hier ist wieder mal der Entwickler selbst gefragt. Meine sehr einfache Methode kann jede SQLite Tabelle per LogCat ausgeben:

	/** Gibt eine SQLite Tabelle per LogCat aus
	 * @param tablename Name der Tabelle
	 */
	private void println(String tablename){
		String selectQuery = "SELECT * FROM " + tablename;
		
		// Achtung!!! ggf die Datenbank-Connection von aussen rein geben 
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
 
        if (cursor.moveToFirst()) {
        	// +++ Tabellenkopf +++
        	String spalteTrennzeichen = " | ";
        	String zeileTrennzeichen = "-----------------------------------------";
        	String zeile = spalteTrennzeichen;
        	
        	for (String name : cursor.getColumnNames()) {
        		zeile = zeile + name + spalteTrennzeichen;
			}
        	
        	// Ausgabe
        	Log.d(tablename, zeileTrennzeichen);
        	Log.d(tablename, zeile);				
        	Log.d(tablename, zeileTrennzeichen);
        	
        	// ueber den Cursor iterieren  
            do {
        	// +++ Tabellenzeile +++
            	zeile = spalteTrennzeichen;
            	for (int i = 0; i < cursor.getColumnCount(); i++) {
		            	String neu = cursor.getString(i);
		            	
		            	// Inhalt formatieren
		            	if(neu == null){
		            		neu = "null";
		            	}else{
			            	if(neu.length() > 20){
			            		neu = neu.substring(0, 19);
			            		neu = neu + "...";
			            	}		            		
		            	}
		            	
		               zeile = zeile + neu;
		               // Trennzeichen
		               zeile = zeile + spalteTrennzeichen;                  		
				} 
            	Log.d(tablename, zeile);		            	
            } while (cursor.moveToNext());
            Log.d(tablename, zeileTrennzeichen);
        }
	}

 

Das Ergebnis

ausgabe

 

Bildquelle

 

Copyright © 2014 AxxG – Alexander Gräsel



Kommentar verfassen