Android sqlite3如何存储List<Long>
时间: 2024-03-06 19:50:57 浏览: 17
在Android中,你可以使用SQLite数据库来存储和检索数据。如果你想要存储一个List<Long>,你需要首先创建一个SQLite数据库表,并为每个Long value定义一个列。下面是一个简单的示例代码:
```java
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "my_database.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "my_table";
private static final String COLUMN_ID = "id";
private static final String COLUMN_VALUE = "value";
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE " + TABLE_NAME + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY,"
+ COLUMN_VALUE + " INTEGER)";
db.execSQL(createTableQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Upgrade logic goes here
}
public void insertValues(List<Long> values) {
SQLiteDatabase db = getWritableDatabase();
ContentValues contentValues = new ContentValues();
for (Long value : values) {
contentValues.put(COLUMN_VALUE, value);
db.insert(TABLE_NAME, null, contentValues);
}
db.close();
}
public List<Long> getValues() {
List<Long> values = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
while (cursor.moveToNext()) {
Long value = cursor.getLong(cursor.getColumnIndex(COLUMN_VALUE));
values.add(value);
}
cursor.close();
db.close();
return values;
}
}
```
这个示例代码中,我们创建了一个MyDatabaseHelper类,继承自SQLiteOpenHelper类,用于管理SQLite数据库的创建和升级。我们定义了一个表名为my_table,包含一个id列和一个value列。我们使用insertValues方法将List<Long>中的每个Long value插入到数据库中的value列中。我们使用getValues方法从数据库中查询value列的所有值,并将它们存储在一个List<Long>中返回。
注意,在这个示例代码中,我们假设List<Long>中的每个Long value都对应一个唯一的id,因此我们没有在插入数据时指定id列的值。如果你需要在插入数据时指定id列的值,请修改insertValues方法的实现。