繁体   English   中英

如何在libgdx上使用SQLite(仅限核心和项目)?

[英]How to use SQLite on libgdx (only core and project)?

我需要使用数据库来使用SQLite保存玩家的得分。 我只有核心和android项目。 我知道我需要在核心中实现一个接口并在Android项目中使用SQLite,但是我不知道该怎么办。

android project中 ,使用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做到这一点,我想这很简单,但是我是个菜鸟。

尝试使用gdx-sqlite ,它是用于SQLite数据库处理的跨平台LibGDX扩展。

该项目不再得到积极维护,因此请在此处查看各种分支 ,以跟进有关此存储库的积极发展。

当前支持的平台:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM