SQLite Abfrage

A

avataroflive

Neues Mitglied
0
Hallo,

hänge zurzeit leider bei der SQLite abfrage, die ich schön nach Tutorial durchgearbeitet habe. Hoffe jemand kann mir bei dem Fehler weiterhelfen.

Das ist der Code für die Variablen
Code:
package de.tut.de.test1;

/**
 * Created by Admin on 29.03.2015.
 */
public class Begriff {

        private int id;
        private String begriffe;
        private String begriff_erklaerung;
        private String image;

        public Begriff(){}

        public Begriff(String begriffe, String begriff_erklaerung, String image){
        super();
        this.begriffe = begriffe;
        this.begriff_erklaerung = begriff_erklaerung;
        this.image = image;
    }
        public String toString() {
        return "Begriff [id=" + id + ", begriffe=" + begriffe + ", begriff_erklaerung=" + begriff_erklaerung + ", image=" + image + "]";
        }

}

Und das zum Auslesen/Eintragen

Code:
package de.tut.de.test1;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import de.tut.de.test1.Begriff;


/**
 * Created by Admin on 26.03.2015.
 */
public class db_lexicon extends SQLiteOpenHelper {



    public static final String DB_NAME = "db_lexikon";
    public static final int DB_VERSION = 1;
    public static final String TABLE_SCOUTLOG = "lexikon";
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_TITLE = "begriffe";
    public static final String COLUMN_CONTENT = "begriff_erklaerung";
    public static final String COLUMN_IMAGE = "image";
    public static final String ORDER = "ASC";

    public static final String SQL_CREATE =
            "CREATE TABLE IF NOT EXISTS " + TABLE_SCOUTLOG + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_TITLE + " text not null, " +
                    COLUMN_CONTENT + " text" +
                    COLUMN_IMAGE + " text);";

    public db_lexicon(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS lexikon");

        this.onCreate(db);

    }

    private static final String[] COLUMNS = {COLUMN_ID,COLUMN_TITLE,COLUMN_CONTENT,COLUMN_IMAGE};

    public void addBegriff(Begriff begriff){
        Log.d("addBegriff", begriff.toString());

        // 1. Referenz zur Datenbank
        SQLiteDatabase db = this.getWritableDatabase();

        // 2. VALUES auslesen
        ContentValues values = new ContentValues();
        values.put(COLUMN_TITLE, begriff.getBegriffe());
        values.put(COLUMN_CONTENT, begriff.getBegriff_erklaerung());
        values.put(COLUMN_IMAGE, begriff.getImage());

        // 3. Einfügen
        db.insert(TABLE_SCOUTLOG,
                null,
                values);

        // 4. Close
        db.close();
    }

    public void getBegriff(int id){

    // 1. Reference zur Tablelle
        SQLiteDatabase db = this.getReadableDatabase();

    // 2. Abfrage Aufbauen
        Cursor cursor =
                db.query(TABLE_SCOUTLOG, // Tabelle
                        COLUMNS, // Spalten Name
                        " id = ?", // Selektion
                        new String[] { String.valueOf(id) }, // selektions Argument
                        null, //group by
                        null, //having
                        ORDER, //order by
                        null); //Limit

        // 3. Wenn Ergebniss vorhanden, auf erstes Zugreifen
        if(cursor != null)
            cursor.moveToFirst();

        // 4. Objekt erstellen
        Begriff begriff = new Begriff();
        begriff.setId(Integer.parseInt(cursor.getString(0)));
        begriff.setBegriffe(cursor.getString(1));
        begriff.setBegriff_erklaerung(cursor.getString(2));
        begriff.setImage(cursor.getString(3));

        Log.d("getBegriff("+id+")", begriff.toString());

        // 5. Ausgabe
        return begriff;
    }

}

Leider bekomme ich da folgende Fehler:
Error:(61, 41) error: cannot find symbol method getBegriffe()
Error:(62, 43) error: cannot find symbol method getBegriff_erklaerung()
Error:(63, 41) error: cannot find symbol method getImage()
Error:(96, 16) error: cannot find symbol method setId(int)
Error:(97, 16) error: cannot find symbol method setBegriffe(String)
Error:(98, 16) error: cannot find symbol method setBegriff_erklaerung(String)
Error:(99, 16) error: cannot find symbol method setImage(String)
Error:(104, 16) error: cannot return a value from method whose result type is void

Suche schon 2 Tage und komme nicht auf die Lösung, leider.
Vielen Dank für eure Hilfe schon einmal im Voraus.
 
Wie wärs, wenn du die getter- und setter-Methoden erstmal anlegst? Hast ja keine in deiner Begriffe-Klasse drin. Wo nichts ist, kann er auch keine Methoden finden.
 
public void getBegriff(int id) soll sicher
public Begriff getBegriff(int id) heißen, oder?

(womit auf jeden Fall der letzte Fehler weg sein sollte...)
 
Großes Danke an beide. Interessanter weise haben getter setter auch im tut gefehlt. Läuft jetzt ohne Fehler. Danke nochmal. :thumbsup:
 
Wahrscheinlich hat er im Tut keine benutzt. Laut Google soll man keine benutzen. Die gehen auf die Performance und kosten Speicher.
 
sillage schrieb:
Wahrscheinlich hat er im Tut keine benutzt. Laut Google soll man keine benutzen. Die gehen auf die Performance und kosten Speicher.
Das solltest du nochmal erklären... :huh:
 
Jepp, genau dass. :) Danke.

Der ursprüngliche Beitrag von 16:13 Uhr wurde um 16:23 Uhr ergänzt:

Man kann zwar keine Schnittstelle, die Änderungen in der Implementierung verbirgt, aber man hat mehr Performance.
 

Ähnliche Themen

R
Antworten
6
Aufrufe
1.016
swa00
swa00
B
Antworten
3
Aufrufe
1.308
swa00
swa00
Zurück
Oben Unten