如何将arrarylist值存储到sqlitedb中?

时间:2015-10-15 04:28:44

标签: android excel arraylist android-sqlite android-contacts

我已将手机中的所有号码存储到arraylist中,现在我需要将所有这些号码存储到sqlitedb中,以便我可以轻松地将它们转换为excel表格。

List list = new ArrayList();

String number = cur.getString(cur.getColumnIndex(CommonDataKinds.Phone.NUMBER));                 list.add(数);

2 个答案:

答案 0 :(得分:1)

尝试使用此方法存储phobne编号

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;
}

}

答案 1 :(得分:0)

您使用ContentValues对象来保存值,并调用SQLiteDatabase对象的insert方法。例如

  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上查看有关Android中的SQLiteDataBases的幻灯片视频