2010-04-28 20 views
28

Ich brauche eine Schritt für Schritt Anleitung zum Erstellen einer Datenbank in Android. Wie erstelle ich eine Datenbank in Android?

+0

Weitere Informationen empfehle ich Sie lesen Sie die Android-Dokumentation unter http://developer.android.com/training/basics/data-storage/databases.html. Es bringt dir alles Schritt für Schritt bei. Alles Gute – user2070775

Antwort

1

Beachten Sie, dass es eine gute Praxis ist alles Zugriff auf Ihre Daten wickeln zu ContentProviders

6

Datenbank erstellen:

db= this.openOrCreateDatabase("db_hw3", MODE_PRIVATE, null); 
45

Datenbank ist wichtig, was in der Programmierung. Viele unserer Codes verwenden immer Daten, die verarbeitet und gespeichert werden. Wie jede andere Programmierumgebung unterstützt Android auch die Datenbankprogrammierung. Sie können die von android unterstützte Standarddatenbank SQLiteDatabase verwenden.

Datenbank in SQLiteDatabase kann mehr als eine Tabelle enthalten. Wir haben eine Datenbank PERSONALDB und eine Tabelle BIODATA. Die Struktur von BIODATA ist:

_id integer 
code string 
name string 
gender string 

_id is for key increment, 

code, name und gender ist zur Beschreibung von person.

Wenn das Programm das erste Mal aufgerufen wird, müssen wir sicherstellen, dass die Datenbank und die Tabelle geöffnet ist, wenn es existiert. Wenn nicht, dann müssen wir eine Datenbank und eine Tabelle erstellen. Als ein Beispiel aus Android notepad sample, hier ist die Klasse PersonDbHelper für die Manipulation der Tabelle Biodata.

import java.io.FileNotFoundException; 
import java.util.ArrayList; 
import java.util.List; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.util.Log; 

public class PersonDbHelper { 
    class Row extends Object { 
     public long _Id; 
     public String code; 
     public String name; 
     public String gender; 
    } 

    private static final String DATABASE_CREATE = 
     "create table BIODATA(_id integer primary key autoincrement, " 
      + "code text not null," 
      + "name text not null" 
      +");"; 

    private static final String DATABASE_NAME = "PERSONALDB"; 

    private static final String DATABASE_TABLE = "BIODATA"; 

    private static final int DATABASE_VERSION = 1; 

    private SQLiteDatabase db; 

    public PersonDbHelper(Context ctx) { 
     try { 
      db = ctx.openDatabase(DATABASE_NAME, null); 
     } catch (FileNotFoundException e) { 
      try { 
       db = 
        ctx.createDatabase(DATABASE_NAME, DATABASE_VERSION, 0, 
         null); 
       db.execSQL(DATABASE_CREATE); 
      } catch (FileNotFoundException e1) { 
       db = null; 
      } 
     } 
    } 

    public void close() { 
     db.close(); 
    } 

    public void createRow(String code, String name) { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put("code", code); 
     initialValues.put("name", name); 
     db.insert(DATABASE_TABLE, null, initialValues); 
    } 

    public void deleteRow(long rowId) { 
     db.delete(DATABASE_TABLE, "_id=" + rowId, null); 
    } 

    public List<Row> fetchAllRows() { 
     ArrayList<Row> ret = new ArrayList<Row>(); 
     try { 
      Cursor c = 
       db.query(DATABASE_TABLE, new String[] { 
        "_id", "code", "name"}, null, null, null, null, null); 
      int numRows = c.count(); 
      c.first(); 
      for (int i = 0; i < numRows; ++i) { 
       Row row = new Row(); 
       row._Id = c.getLong(0); 
       row.code = c.getString(1); 
       row.name = c.getString(2); 
       ret.add(row); 
       c.next(); 
      } 
     } catch (SQLException e) { 
      Log.e("Exception on query", e.toString()); 
     } 
     return ret; 
    } 

    public Row fetchRow(long rowId) { 
     Row row = new Row(); 
     Cursor c = 
      db.query(true, DATABASE_TABLE, new String[] { 
       "_id", "code", "name"}, "_id=" + rowId, null, null, 
       null, null); 
     if (c.count() > 0) { 
      c.first(); 
      row._Id = c.getLong(0); 
      row.code = c.getString(1); 
      row.name = c.getString(2); 
      return row; 
     } else { 
      row.rowId = -1; 
      row.code = row.name= null; 
     } 
     return row; 
    } 

    public void updateRow(long rowId, String code, String name) { 
     ContentValues args = new ContentValues(); 
     args.put("code", code); 
     args.put("name", name); 
     db.update(DATABASE_TABLE, args, "_id=" + rowId, null); 
    } 
    public Cursor GetAllRows() { 
     try { 
      return db.query(DATABASE_TABLE, new String[] { 
        "_id", "code", "name"}, null, null, null, null, null); 
     } catch (SQLException e) { 
      Log.e("Exception on query", e.toString()); 
      return null; 
     } 
    } 
} 

Bei dem Verfahren onCreate Sie nur einen einzigen Befehl unten setzen müssen, um die Datenbank zu initialisieren: ...

Db = new PersonDbHelper(this); 

...

Er wird versuchen, zu öffnen 'PersonalDB' zuerst. Wenn es nicht existiert, wird es eine Datenbank erstellen. In dieser Klasse 'PersonDbHelper' gibt es Methoden zum Einfügen, Löschen, Aktualisieren und Abfragen der Tabelle.

Hier ist der Verweis auf die oben Tutorial:

http://www.devx.com/wireless/Article/40842

0:

Creating my first android Database

Sie auch durchlaufen kann

http://www.vogella.de/articles/AndroidSQLite/article.html

Hoffnung, das hilft.

Verwandte Themen