我需要使用数据库来使用SQLite保存玩家的得分。我只有核心和android项目。我知道我需要在核心中实现一个接口并在Android项目中使用SQLite,但是我不知道该怎么办。
在 android项目中,使用SQLite的数据库:
public class DataBase extends SQLiteOpenHelper implements DataBaseInterface{
// Versión de la base de datos
private static final int DATABASE_VERSION = 1;
// Nombre de la base de datos
private static final String DATABASE_NAME = "gamescore";
// Nombre de la tabla
private static final String TABLE_SCORE = "score";
// Nombres de cada columna de la tabla
private static final String KEY_ID = "_id";
private static final String KEY_SCORE = "score_value";
public DataBase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creación de las tablas
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_SCORE_TABLE = "CREATE TABLE " + TABLE_SCORE + "("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_SCORE + " TEXT" + ")";
db.execSQL(CREATE_SCORE_TABLE);
}
// Actualización de la base de datos
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// La BD anterior es eliminada en caso de existir
db.execSQL("DROP TABLE IF EXISTS " + TABLE_SCORE);
// Se vuelve a crear la BD
onCreate(db);
}
// Para añadir una nueva puntuación obtenida por el jugador
public void addScore(int score) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
//Valor de la puntuación
values.put(KEY_SCORE, score);
// Inserción de valores
db.insert(TABLE_SCORE, null, values);
// Se cierra la conexión con la BD
db.close();
}
// Obtención de todas las puntuaciones
public String[] getAllScores() {
// Query que selecciona todos los datos de la tabla
String selectQuery = "SELECT * FROM " + TABLE_SCORE;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
int i = 0;
String[] data = new String[cursor.getCount()];
//Se van añadiendo los datos hasta que se recorra entero
while (cursor.moveToNext()) {
data[i] = cursor.getString(1);
i = i++;
}
cursor.close();
db.close();
// Se devuelven los datos obtenidos
return data;
}}
在核心项目中,界面:
public interface DataBaseInterface {
public void addScore(int score);
public String[] getAllScores();}
我阅读了本指南:
https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code
但是我不知道如何使用SQLite做到这一点,我想这很简单,但是我是个傻瓜。
答案 0 :(得分:1)
尝试gdx-sqlite,这是一种用于SQLite
数据库处理的跨平台LibGDX扩展。
该项目不再得到积极维护,因此请在此处查看各种forks,以跟进有关此存储库的积极发展。
当前支持的平台:
SQLite
API实施)