-1
Ich weiß nicht, wo die Select-Abfrage einfügen. Ich importiere eine externe Datenbank (Sqlite Browser) in mein Projekt und weiß nicht, wie ich die Daten von meiner Datenbank zur Listenansicht anzeigen kann.So zeigen Sie meine Daten aus meiner eigenen Datenbank in Android
public class DatabaseHelper extends SQLiteOpenHelper {
String DB_PATH = null;
public static String DB_NAME = "extenalDBS";
private SQLiteDatabase myDataBase;
private final Context myContext;
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, 1);
this.myContext = context;
this.DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases/";
Log.e("Path 1", DB_PATH);
}
public void createDataBase() throws IOException {
boolean dbExist = checkDataBase();
if (dbExist) {
} else {
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
throw new Error("Error copying database");
}
}
}
public boolean checkDataBase() {
SQLiteDatabase checkDB = null;
try {
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
} catch (SQLiteException e) {
}
if (checkDB != null) {
checkDB.close();
}
return checkDB != null ? true : false;
}
private void copyDataBase() throws IOException {
InputStream myInput = myContext.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
public void openDataBase() throws SQLException {
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
}
@Override
public synchronized void close() {
if (myDataBase != null)
myDataBase.close();
super.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (newVersion > oldVersion)
try {
copyDataBase();
} catch (IOException e) {
e.printStackTrace();
}
}
public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {
return myDataBase.query("wordbank", null, null, null, null, null, null);
}
}
Können Sie es mir erklären, ich meine den Prozess dieses Codes? Bitte ? –
Wir machen eine Methode in der DBhelper-Klasse des Rückgabetyp-Cursors, der die Tabellendaten enthält. Am Empfangsende machen wir einen Cursor und rufen diese Methode auf. Jetzt prüfen wir, ob der Cursor einen Startpunkt hat, wenn ja, dann folgen wir der Schleife, bis der Cursor nächste Züge bedeutet, nächste Werte oder genauere Tabellenzeilen aus der DB. Diese Nummern sind nur die Spalte Nr. –
Vielen Dank :), jetzt werde ich es testen –