Apps für Android programmieren leicht gemacht!
sql datenbank erstellen

SQL Datenbank erstellen

SQL-Datenbanken sind eine der schnellsten und einfachsten Wege kleine und große Datenmengen zu speichern und dynamisch wieder auszulesen.

In diesem Tutorial erklären ich euch wie ihr am schnellsten und effektivsten SQL Datenbanken erstellt und in einem weiterführenden Tutorial erkläre ich euch auch gleich, wie ihr SQL Datenbanken effektiv nutzt. >>SQL Datenbanken nutzen<<

Für diesen Artikel nutzen wir ein kleines Anwendungsbeispiel, um einen Leitfaden für unsere späteren Erklärungen zu erhalten.
Wir wählen uns denn Fall aus, dass wir eine Shopping-App stelle möchten.
Dazu benötigen wir also eine Datenbank, die folgende Informationen enthält: Artikelnummer, Artikelname, Preis, Lagernd.

Als erstes benötigen wir eine neue Klasse, welche alle nötigen Funktion zur Behandlung von Operationen enthält.
Ich denke am besten wäre es, wenn wir die Klasse „DB_Artikel“ nennen. „DB“ steht hierbei für „Datenbank“.

 

Grundidee:

Ich denke mal wir haben nun alle eine neue Java-Klasse erstellt? – Wenn nicht, dann holt dies jetzt bitte nach.

Wir sollten uns, vor Beginn der Programmierung, über den Grundriss der Datenbank Gedanken machen.

Als erstes sollte die Datenbank beim ersten Start der App erstellt werden.
Auch benötigen wir eine Funktion, dass die Datenbank komplett geleert wird.
Vielleicht wäre es auch ganz sinnvoll eine Datenbankversion angeben zu können, damit wir bei Änderungen an der Datenbank nur die Versionszahl ändern müssen und die App dann beim Nutzer nur die neueste Datenbankversion nutzt. Dieser Vorgang wäre wichtig, wenn wir zum Beispiel eine neue Tabelle zur Datenbank hinzufügen, wir auf die neue Tabelle zugreifen möchten, diese beim Nutzer aber noch nicht existiert und so in einen Fehler laufen würden.

 

Grundriss:

//Erstes Konstrukt der Datenbank:
public class DB_Artikel extends SQLiteOpenHelper {

   //Version und Datenbanksname definieren (Sobald hier etwas geändert wird, wird die Datenbank in der App neu erstellt.)
   public static final int DB_VERSION = 1;
   public static final String DB_NAME = "artikel.db";

   //Vorschrift, wie die Tabelle dieser Datenbank auszusehen hat
   private static final String DB_TABELLE = "CREATE TABLE Artikel (Row integer primary key, Artikelnummer INTEGER, Artikelname TEXT, PREIS FLOAT, Lagernd INTEGER)";

   //Konstruktor
   public DB_Artikel(Context context) {
      super(context, DB_NAME, null, DB_VERSION);
   }

   //Erstelle die neue Datenbank, beim Start der App
   public void onCreate(SQLiteDatabase db) {
      db.execSQL(DB_TABELLE);
   }

   //Lösche die alte Datenbank und erstelle eine Neue, falls sich die Version ändert
   public void onUpgrade(SQLiteDatabase db, int alteVersion, int neueVersion) {
      db.execSQL("DROP TABLE IF EXISTS Artikel");
      onCreate(db);
   }

   //Hier sinnlos, sonst die Wiederherstellung einer älteren Datenbanksversion
   public void onDowngrade(SQLiteDatabase db, int alteVersion, int neueVersion) {
      onUpgrade(db, alteVersion, neueVersion);
   }

}

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

2 Kommentare

*Pflichtfeld

  • super(context, DB_NAME, null, DB_VERSION);

    hier sagt er mir:
    Call to ’super()‘ must be first statement in constructor body

    was muss ih´ch da tun?

  • Hallo Daniel,

    mir würde so spontan, ohne deinen Code gesehen zu haben, auf drei Dinge tippen.
    Einerseits könnte es daran leigen, dass du die Klasse nicht mit SQLiteOpenHelper extended hast.
    Andererseits könnte es an den nicht definierten Variablen DB_NAME und DB_VERSION liegen.
    Alternativ kann es natürlich sein, dass du noch eine Funktion vor „super(…)“ aufrufst. Verschiebe diesen Funktionsaufruf unter „super(…)“.
    Bitte überprüfe alle drei Dinge.

    Falls es nicht an diese Hinweisen liegt kannst mir gerne den Code per E-Mail an die Adresse mail@droid-lernen.de zusenden, ich werde mir das mal anschauen und dir die genaue Fehlerquelle nennen können.

    Grüße,
    Marvin