可以使用 SQLite 中的事务来实现 Objective C 中的批量插入数据。将多次的插入操作包含在一个事务中,可以大大提高插入数据的速度,同时减少了数据库的 I/O 操作,避免了数据库每次操作都要提交一次的性能瓶颈。示例代码:
// 打开数据库连接 sqlite3 db = NULL; if (sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK) { // 开始事务 sqlite3_exec(db, "BEGIN TRANSACTION", NULL, NULL, NULL); for (id object in objectsArray) { // 构造插入语句 NSString insertString = [NSString stringWithFormat:@"INSERT INTO Table (Column1, Column2) VALUES (%@, %@)", object.value1, object.value2]; // 执行插入操作 sqlite3_exec(db, [insertString UTF8String], NULL, NULL, NULL); } // 提交事务 sqlite3_exec(db, "COMMIT TRANSACTION", NULL, NULL, NULL); } // 关闭数据库连接 sqlite3_close(db);
其中,对象数组 objectsArray 包含需要插入的数据对象,每次循环中从对象中获取需要插入的数据,将其拼接成插入语句插入到数据库中,在最后一次循环完成后提交整个事务,确保所有数据都已插入成功。