sqlite 批量插入
时间: 2023-11-05 22:05:53 浏览: 187
可以使用 SQLite 的 executemany() 方法来实现批量插入。具体步骤如下:
1. 创建连接对象和游标对象。
2. 准备 SQL 语句,使用 ? 占位符代替实际的值。
3. 准备数据,将数据存储在一个列表中,每个元素都是一个元组,元组中的值与占位符一一对应。
4. 调用 executemany() 方法,将 SQL 语句和数据作为参数传入。
5. 提交事务并关闭连接。
下面是一个示例代码:
```python
import sqlite3
# 创建连接对象和游标对象
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 准备 SQL 语句
sql = 'INSERT INTO users (name, age) VALUES (?, ?)'
# 准备数据
data = [('Alice', 25), ('Bob', 30), ('Charlie', 35)]
# 执行批量插入
cursor.executemany(sql, data)
# 提交事务并关闭连接
conn.commit()
conn.close()
```
相关问题
nodejs sqlite 批量插入
以下是Node.js中使用sqlite3进行批量插入的示例代码:
```javascript
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run("CREATE TABLE lorem (info TEXT)");
var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
// 批量插入数据
var data = ["Ipsum 1", "Ipsum 2", "Ipsum 3", "Ipsum 4", "Ipsum 5"];
for (var i = 0; i < data.length; i++) {
stmt.run(data[i]);
}
stmt.finalize();
db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
console.log(row.id + ": " + row.info);
});
});
db.close();
```
在上面的示例中,我们首先创建了一个内存数据库,并创建了一个名为“lorem”的表。然后,我们使用prepare()方法准备了一个插入语句,并使用run()方法批量插入了数据。最后,我们使用each()方法查询了插入的数据并输出到控制台。
java sqlite批量插入
在Java中使用SQLite进行批量插入,通常的做法是利用SQLite的PreparedStatement对象,它可以预编译SQL语句,并一次性处理多个数据项,提高了性能。以下是简单的步骤:
1. 首先,创建一个PreparedStatement对象,通过`Connection`连接数据库并指定SQL插入语句,例如:
```java
String sql = "INSERT INTO your_table_name (column1, column2, ...) VALUES (?, ?, ...)";
PreparedStatement pstmt = connection.prepareStatement(sql);
```
2. 准备好需要插入的数据列表,通常是`ArrayList`或`Array`等类型的集合,每个元素对应表中的一个字段值。
3. 使用循环遍历数据列表,将每个数据项设置到PreparedStatement的占位符位置,如`pstmt.setString(1, value1);`。
4. 执行批量插入操作:
```java
for (int i = 0; i < dataList.size(); i++) {
pstmt.setObject(i+1, dataList.get(i)); // 根据字段类型调用相应的方法,如setInt(), setDouble()等
}
pstmt.addBatch();
```
5. 最后,提交批处理:
```java
try {
int[] results = pstmt.executeBatch();
for (int result : results) {
System.out.println("Inserted row(s): " + result);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
pstmt.close(); // 关闭PreparedStatement
}
```
阅读全文