Insert multiple records in Sqflite

前端 未结 5 1807
花落未央
花落未央 2020-12-19 07:37

How to insert quickly multiple records in sqflite? The standard quickly method is:

await database.insert(table, object.toMap())
<
5条回答
  •  萌比男神i
    2020-12-19 08:14

    If you have a list of objects you want to insert, you can do it like this (it's not a very clean code, but it works):

      insertClients(List clients) async {
        final db = await database;
        var buffer = new StringBuffer();
        clients.forEach((c) {
          if (buffer.isNotEmpty) {
            buffer.write(",\n");
          }
          buffer.write("('");
          buffer.write(c.firstName);
          buffer.write("', '");
          buffer.write(c.lastName);
          buffer.write("', '");
          buffer.write(c.address);
          buffer.write("')");
        });
        var raw =
            await db.rawInsert("INSERT Into Clients (firstName,lastName,address)"
                " VALUES ${buffer.toString()}");
        return raw;
      }
    

    I'm using this statement from SQLite:

    INSERT INTO 'tablename' ('column1', 'column2') VALUES
                    ('data1', 'data2'),
                    ('data1', 'data2'),
                    ('data1', 'data2');
    

提交回复
热议问题