Collegamento di un database sul computer in Android Studio

Aug 25 2020

Attualmente sto lavorando a un progetto in Android Studio. Avevo creato un database pieno di informazioni sul mio computer e volevo che il mio programma si collegasse a quel database in modo specifico.

Tuttavia, non sembra funzionare per me. A scopo di test ho creato un database di test per verificare se il mio codice funziona. Assomiglia a questo: (non mi sono preoccupato di inserire le istruzioni create per le tabelle / altri metodi relativi al database)

public class DatabaseHelper extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "sample_database";

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

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

@Override
public void onUpgrade(SQLiteDatabase db) {
   ...
}
}

Apprezzerei qualsiasi aiuto su questo. Ogni volta che ho cercato ho ottenuto risposte per connettere il database sqlite su server remoti.

Risposte

ThomasMorris Aug 25 2020 at 07:49

Non sono del tutto sicuro di quale sia la tua domanda, ma ecco un esempio di una classe di supporto del database che ti consentirà di scrivere dati in SQL sull'app mobile.

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME ="Database.db";
    // Database Version
    private static final int DATABASE_VERSION = 1;
    public static final String TABLE  = "TABLE";
  
    public static final String COL1 = "ID",COL2 = "D2", COL3 = "D3";
    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        // creating required tables
        String CREATED_TABLE = "CREATE TABLE " + TABLE + " (ID INTEGER PRIMARY KEY, " +
                "D1 TEXT, D2 TEXT)";
        db.execSQL(CREATED_TABLE);
  
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // on upgrade drop older tables
        db.execSQL("DROP TABLE IF EXISTS " + TABLE);
        onCreate(db);
    }
    public boolean addData_Sensor_Board(String d1, String d2){

        SQLiteDatabase db = this.getWritableDatabase();//Enable the database to be written to
        ContentValues contentValues = new ContentValues();//Setup the data input note COL1 is for the ID
        contentValues.put(COL2,d1);//2
        contentValues.put(COL3,22);//3
     

        long result = db.insert(TABLE,null,contentValues);//Check to see if pass in has been successful and pass in the data on this line via the pass in of content values
        if(result == -1){//Returned false when inputting data to the database
            return false;
        }
        else{
            return true;//No error
        }
    }
    public Cursor showData(){//Used to locate the data inside the database
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT  * FROM " + TABLE;

        Cursor data = db.rawQuery(selectQuery, null);
        return data;
    }
    public void delete_table(){//Clears the entire database
        SQLiteDatabase db = this.getWritableDatabase();
        String clearDB = "DELETE FROM "+ TABLE;
        db.execSQL(clearDB);
    }  
}


ZsoltBoldizsár Aug 25 2020 at 09:32

Per quanto ne so non esiste un modo semplice per farlo, ma Florina Muntenescu ha scritto questo fantastico post sul blog su come puoi caricare un database precompilato nella tua app con Room .

Dopo aver caricato correttamente il database, è possibile utilizzare Android Studio 4.1 per manipolare il database utilizzando Database Inspector integrato (è necessario aggiornare anche il plug-in Android Gradle a 4.1.0 o successivo).