datenbank guide

G

Garalor

Neues Mitglied
4
Nabend,

ich bin auf der suche nach einem guide für das erstellen und benutzen einer Datenbank auf dem Android.

Wir haben ein Projekt, in dem wollen wir raum pläne als tabellen hinterlegen. auf diese tabellen soll unser app zugreifen um die daten darin zu verwenden.

wir dachten nun das uns dabei eine Datenbank am besten helfe würde. wissen aber nicht genau wie das zu realisieren ist in android.

kennt jemand einen guten guide im web?
oder kann uns anderweitig hinweise und tipps geben?

Mfg
Garalor
 
Anbei eine Klasse, die die Verwendung der Datenbank zeigt:

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

public class SettingsDbAdapter {
public static final String KEY_HOST = "vdrHost";
public static final String KEY_PORT = "vdrPort";
public static final String KEY_ROWID = "_id";

private static final String TAG = "SettingsDbAdapter";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;

/**
* Database creation sql statement
*/
private static final String DATABASE_CREATE =
"create table settings (_id integer primary key autoincrement, "
+ "vdrHost text not null, vdrPort text not null);";

private static final String DATABASE_NAME = "vdrData";
private static final String DATABASE_TABLE = "settings";
private static final int DATABASE_VERSION = 2;

private final Context mCtx;

private static class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL(DATABASE_CREATE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS settings");
onCreate(db);
}
}

/**
* Constructor - takes the context to allow the database to be
* opened/created
*
* @param ctx the Context within which to work
*/
public SettingsDbAdapter(Context ctx) {
this.mCtx = ctx;
}

/**
* Open the database. If it cannot be opened, try to create a new
* instance of the database. If it cannot be created, throw an exception to
* signal the failure
*
* @return this (self reference, allowing this to be chained in an
* initialization call)
* @throws SQLException if the database could be neither opened or created
*/
public SettingsDbAdapter open() throws SQLException {
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
return this;
}

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


/**
* Create a new data entry using the title and body provided. If the entry is
* successfully created return the new rowId for that entry, otherwise return
* a -1 to indicate failure.
*
* @param title the title of the data entry
* @param body the body of the entry
* @return rowId or -1 if failed
*/
public long createEntry(String host, String port) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_HOST, host);
initialValues.put(KEY_PORT, port);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}

/**
* Delete the entry with the given rowId
*
* @param rowId id of entry to delete
* @return true if deleted, false otherwise
*/
public boolean deleteEntry(long rowId) {

return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}

/**
* Return a Cursor over the list of all entries in the database
*
* @return Cursor over all entries
*/
public Cursor fetchAllEntries() {

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_HOST,
KEY_PORT}, null, null, null, null, null);
}

/**
* Return a Cursor positioned at the entry that matches the given rowId
*
* @param rowId id of entry to retrieve
* @return Cursor positioned to matching entry, if found
* @throws SQLException if entry could not be found/retrieved
*/
public Cursor fetchEntry(long rowId) throws SQLException {

Cursor mCursor =

mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,
KEY_HOST, KEY_PORT}, KEY_ROWID + "=" + rowId, null,
null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;

}

/**
* Update the entry using the details provided. The entry to be updated is
* specified using the rowId, and it is altered to use the title and body
* values passed in
*
* @param rowId id of entry to update
* @param title value to set entry title to
* @param body value to set entry body to
* @return true if the entry was successfully updated, false otherwise
*/
public boolean updateEntry(long rowId, String title, String body) {
ContentValues args = new ContentValues();
args.put(KEY_HOST, title);
args.put(KEY_PORT, body);

return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0;
}
}
und hier noch der Zugriff:
mDbHelper = new SettingsDbAdapter(this);
mDbHelper.open();
handleDbData();

private void handleDbData() {

Cursor c = mDbHelper.fetchAllEntries();
startManagingCursor(c);

int colHostIdx = c.getColumnIndex(SettingsDbAdapter.KEY_HOST);
int colPortIdx = c.getColumnIndex(SettingsDbAdapter.KEY_PORT);
int colIdIdx = c.getColumnIndex(SettingsDbAdapter.KEY_ROWID);

boolean ok = c.moveToFirst();
if(ok == true){
vdrHost = c.getString(colHostIdx);
vdrPort = Integer.valueOf(c.getString(colPortIdx));
dbRow = c.getLong(colIdIdx);
}
else{
dbRow = mDbHelper.createEntry(vdrHost, String.valueOf(vdrPort));
}
}
Gruss unfug
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.669
Sempervivum
S
S
  • softwareunkundig
Antworten
1
Aufrufe
886
jogimuc
J
Zurück
Oben Unten