Conectando una base de datos en una computadora en Android Studio

Aug 25 2020

Actualmente estoy trabajando en un proyecto en Android Studio. Había creado una base de datos llena de información en mi computadora y quería que mi programa se conectara específicamente a esa base de datos.

Sin embargo, no parece funcionar para mí. Con fines de prueba, creé una base de datos de prueba para verificar si mi código funciona. Se parece a esto: (no me he molestado en poner las declaraciones de creación para tablas / otros métodos relacionados con la base de datos)

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) {
   ...
}
}

Agradecería cualquier ayuda en esto. Cada vez que lo buscaba, obtenía respuestas para conectar la base de datos sqlite en servidores remotos.

Respuestas

ThomasMorris Aug 25 2020 at 07:49

No estoy completamente seguro de cuál es su pregunta, pero aquí hay un ejemplo de una clase auxiliar de base de datos que le permitirá escribir datos en SQL en la aplicación móvil.

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

Hasta donde yo sé, no hay una manera fácil de hacerlo, pero Florina Muntenescu escribió esta excelente publicación de blog sobre cómo se puede cargar una base de datos precargada en su aplicación con Room .

Una vez que haya cargado correctamente su base de datos, puede usar Android Studio 4.1 para manipular la base de datos utilizando el Inspector de base de datos integrado (también debe actualizar el complemento Gradle de Android a 4.1.0 o superior).