gpt4 book ai didi

android - 使用 ContentValues 数组批量插入

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:55 24 4
gpt4 key购买 nike

我正在尝试批量插入大约 700 个 float 。我使用的方法在下方以及内容提供商的 bulkInsert 中。问题是,当我将所有浮点值放入 ContentValues 时,什么也没有发生。将这些浮点值插入 ContentValues 对象的更好方法是什么?

    private void saveToDatabase( float[] tempValues )
{
ContentValues values = new ContentValues();

// WM: TODO: add patient id and sensor type
for (float tempVal : tempValues){
values.put( DataTable.COLUMN_DATA, tempVal );
}

ContentValues[] cvArray = new ContentValues[1];
cvArray[0] = values;

ContentResolver resolver = getContentResolver();
resolver.bulkInsert( HealthDevContentProvider.CONTENT_URI_DATA, cvArray);

public int bulkInsert(Uri uri, ContentValues[] values){
int numInserted = 0;
String table = null;

int uriType = sURIMatcher.match(uri);

switch (uriType) {
case RAWINPUT_TABLE:
table = RAWINPUT_TABLE_PATH;
break;
}

db.beginTransaction();
try {
for (ContentValues cv : values) {
long newID = db.insertOrThrow(table, null, cv);
if (newID <= 0) {
throw new SQLException("Failed to insert row into " + uri);
}
}
db.setTransactionSuccessful();
getContext().getContentResolver().notifyChange(uri, null);
numInserted = values.length;
} finally {
db.endTransaction();
}
return numInserted;
}

最佳答案

如果您希望每个 float 在您的数据库中都有自己的记录,则需要为每个新记录创建一个 ContentValues 实例。现在您有一个 ContentValues 实例,并且您正在向它写入相同的键(意味着您正在覆盖值)700 次。

private void saveToDatabase( float[] tempValues ) {
final int count = tempValues.legnth;
ContentValues[] cvArray = new ContentValues[count];
for (int i = 0; i < count; i++) {
float tempVal = tempValues[i];
ContentValues values = new ContentValues();
values.put( DataTable.COLUMN_DATA, tempVal );
cvArray[i] = values;
}

/* all the rest */
}

关于android - 使用 ContentValues 数组批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18664835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com