Conectando una base de datos en una computadora en Android Studio
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
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);
}
}
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).