如何将 arrarylist 值存储到 sqlitedb 中?
Posted
技术标签:
【中文标题】如何将 arrarylist 值存储到 sqlitedb 中?【英文标题】:How to store the arrarylist values into sqlitedb? 【发布时间】:2016-01-13 09:40:15 【问题描述】:我已经将手机中的所有数字存储到一个数组列表中,现在我需要将所有这些数字存储到 sqlitedb 中,以便我可以轻松地将它们转换为 excel 表。
列表列表 = new ArrayList();
字符串编号 = cur.getString(cur.getColumnIndex(CommonDataKinds.Phone.NUMBER)); list.add(number);
【问题讨论】:
***.com/questions/1243181/… 【参考方案1】:试试这个方法获取店铺电话号码
public static void storeInDB(ArrayList longs) 抛出 IOException, SQLException
ByteArrayOutputStream bout = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(bout);
for (long l : longs)
dout.writeLong(l);
dout.close();
byte[] asBytes = bout.toByteArray();
PreparedStatement stmt = null; // however you get this...
stmt.setBytes(1, asBytes);
stmt.executeUpdate();
stmt.close();
public static ArrayList readFromDB() 抛出 IOException, SQLException
ArrayList<Long> longs = new ArrayList<Long>();
ResultSet rs = null; // however you get this...
while (rs.next())
byte[] asBytes = rs.getBytes("myLongs");
ByteArrayInputStream bin = new ByteArrayInputStream(asBytes);
DataInputStream din = new DataInputStream(bin);
for (int i = 0; i < asBytes.length/8; i++)
longs.add(din.readLong());
return longs;
【讨论】:
【参考方案2】:您将使用 ContentValues 对象来保存值,并调用 SQLiteDatabase 对象的插入方法。例如
database = SQLiteOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
for(int i = 0; i < list.size(); i++)
values.put(CommonDataKinds.Phone.NUMBER, list.get(i);
database.insert(TABLE_NAME, null, values);
基本上我所做的是 1) 获取对数据库对象的可写引用; 2) 创建一个 contentValues 对象,该对象将被传递到可写数据库的 insert 方法中; 3) 遍历列表,并将列表中的每个元素添加到 contentValues 对象(每次迭代都添加到数据库中)。希望这对一些人有所帮助!我建议在 youtube 上查看 slidenerd 的关于 android 中的 SQLiteDataBases 的视频
【讨论】:
以上是关于如何将 arrarylist 值存储到 sqlitedb 中?的主要内容,如果未能解决你的问题,请参考以下文章