Android SQlite数据库存储到手机的内存和检索

时间:2015-11-13 08:11:57

标签: android android-studio android-sqlite

我对Android和数据库相对较新。我正在开发一个应用程序,我将所有细节存储在用户输入的数据库中。当用户输入所有细节时,我想提供保存整个数据库的选项。当他回到应用程序时,他必须能够创建一个新的数据库或打开以前存储的数据库。我查了很多文章,但我不太确定。欢迎任何帮助。我已经在下面发布了我的数据库程序。

public class DBHandler extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "productDB.db";
public static final String TABLE_INFO = "info";
public static final String COLUMN_ID1 = "_id1";
public static final String COLUMN_PLAYER = "player";
public static final String COLUMN_RUNSSCORED = "runsscored";
public static final String COLUMN_BALLSFACED = "ballsfaced";
public static final String COLUMN_WICKETS = "wickets";

public DBHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
            String query1 = "CREATE TABLE " + TABLE_SCOREINFO + "(" +
            COLUMN_ID1 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
            COLUMN_PLAYER + " TEXT, " + COLUMN_RUNSSCORED + " INTEGER, " +
            COLUMN_BALLSFACED + " INTEGER, " +
            COLUMN_WICKETS +  " INTEGER " + ");";
    db.execSQL(query1);
}

我也写了相应的行添加代码。现在,当用户单击特定按钮时,此数据库必须存储在内存中,如果用户希望输入新的详细信息,那么如何创建新数据库,如果他希望打开以前存储的数据,如何检索它? / p>

1 个答案:

答案 0 :(得分:0)

首先,大多数使用静态数据库名称和版本的人简化了他们的SQLiteOpenHelper构造函数,如下所示:

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

DATABASE_NAME是文件系统上数据库文件的名称(具体地说,在应用程序数据目录的databases目录中)。这意味着上面的代码始终打开相同的数据库文件。如果这就是您想要的,那么您就完成了。

如果您确实需要单独的数据库文件,则需要允许不同的数据库名称,例如:

public DBHandler(Context context, String dbName) {
    super(context, dbName, null, DATABASE_VERSION);
}