在mysql nodejs中插入 对象数组
时间: 2024-04-29 20:23:16 浏览: 236
可以通过循环遍历对象数组,逐个插入到数据库中,示例代码如下:
```javascript
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'test'
});
connection.connect();
const users = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 30 }
];
users.forEach(user => {
connection.query('INSERT INTO users SET ?', user, (error, results, fields) => {
if (error) throw error;
console.log(results);
});
});
connection.end();
```
这里使用了`forEach`方法遍历对象数组,每次循环都执行一次插入操作,使用`INSERT INTO`语句将对象的属性名作为列名,属性值作为值插入到数据库中。其中`?`是占位符,将会被后面的`user`参数替换。最后关闭数据库连接。
相关问题
nodejs mysql 批量插入100条数据
在Node.js中,使用`mysql2`库批量插入大量数据到MySQL数据库通常涉及预处理语句和游标(cursor),以减少网络往返次数和提高性能。以下是一个示例,演示如何批量插入100条数据:
首先,确保安装了`mysql2`模块:
```bash
npm install mysql2
```
然后,编写一个函数来进行批量插入:
```javascript
const mysql = require('mysql2/promise');
async function batchInsert(data, dbConfig) {
const connection = await mysql.createConnection(dbConfig);
const bulkInsertQuery = `INSERT INTO w_rank (id, type, info, time, valueObj, aid) VALUES ? ON DUPLICATE KEY UPDATE type=VALUES(type), info=VALUES(info), time=VALUES(time), valueObj=VALUES(valueObj), aid=VALUES(aid)`;
try {
// 创建一个预处理语句
const preparedQuery = await connection.prepare(bulkInsertQuery);
// 使用Array.from和map来生成插入值的数组
const valuesArrays = Array.from({ length: data.length }, (_, i) => data[i]);
// 使用预处理语句的batchStart和batchEnd方法分批插入数据
for (let start = 0; start < valuesArrays.length; start += 100) {
const end = Math.min(start + 100, valuesArrays.length);
await preparedQuery.batchStart();
// 分块插入数据
for (let i = start; i < end; i++) {
await preparedQuery.execute(valuesArrays[i]);
}
await preparedQuery.batchCommit(); // 执行批量提交
}
console.log('Bulk insert completed successfully.');
} catch (error) {
console.error('Error during bulk insert:', error);
} finally {
connection.end();
}
}
// 数据样例
const data = [
... // 100条数据,每条数据结构类似:[1, 'type1', 'info1', timestamp1, value1, aid1]
];
// 配置连接信息
const dbConfig = {
host: 'your_host',
user: 'your_user',
password: 'your_password',
database: 'your_database'
};
batchInsert(data, dbConfig);
```
这个示例中,我们把数据分为100条一组进行插入,每次使用`batchStart`开始一个新的批量,然后逐条插入数据,并在所有插入完成后使用`batchCommit`提交。
nodejs mysql 批量插入100条数据 完整代码
在Node.js中使用`mysql`库进行批量插入大量数据,通常会创建一个数组并一次性执行SQL语句,以提高效率。下面是一个示例代码,假设我们有一个用户表(users)需要插入100条记录:
```javascript
const mysql = require('mysql');
// 创建数据库连接
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
connection.connect((err) => {
if (err) throw err;
console.log('Connected to MySQL server.');
// 准备要插入的数据,这里只列出部分数据,实际应用中可以替换为数组
const usersToInsert = [
{ id: 1, username: 'user1', email: '[email protected]' },
// ... 其他99条用户数据
];
// 执行批量插入操作
const query = `INSERT INTO users (id, username, email) VALUES ?`;
connection.query(query, [usersToInsert], (insertErr, result) => {
if (insertErr) {
console.error('Error inserting data:', insertErr);
} else {
console.log(`Inserted ${result.insertId} rows.`);
}
// 关闭连接
connection.end();
});
});
```
阅读全文
相关推荐















