Node.js下向MySQL数据库插入批量数据的方法
作者:lym152898 发布时间:2024-01-23 20:21:57
标签:node.js,mysql,数据库
项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能。
批量插入的数据库的表结构如下:
1.数据库连接
var mysql = require('mysql');
// 数据库信息
var connection = mysql.createConnection({
host : 'localhost',
user : '数据库用户名',
password : '数据库登录密码',
database : '操作数据库名'
});
将插入数据转换成嵌套数组
例如要插入的两条数据:
记录1:
from:"index"
to:“www.alibaba.com”
status:1
is_new:0
记录2:
from:"index1"
to:"www.google.com"
status:1
is_new:0
转为一下格式:
var values = [
["index","www.alibaba.com",1,0],
["index1","www.google.com",1,0]
];
编写插入语句
var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";
调用query函数完成数据的插入
connection.query(sql, [values], function (err, rows, fields) {
if(err){
console.log('INSERT ERROR - ', err.message);
return;
}
console.log("INSERT SUCCESS");
});
完整代码:
var mysql = require('mysql');
// 数据库信息
var connection = mysql.createConnection({
host : 'localhost',
user : '数据库用户名',
password : '数据库登录密码',
database : '操作数据库名'
});
var values = [
["index","www.alibaba.com",1,0],
["index1","www.google.com",1,0]
];
var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";
connection.query(sql, [values], function (err, rows, fields) {
if(err){
console.log('INSERT ERROR - ', err.message);
return;
}
console.log("INSERT SUCCESS");
});
同时在这里记录一个基于事务的操作(还没有实践,具体效果不详)
用事务循环插入、如果有一条插入失败进行回滚
mysql模块、connection.beginTransaction是做事务
然后我这里封装了一个函数、对传入的数组做循环插入或更新之类的操作、如果有一条失败了就回滚、全对了就commit
总结
以上所述是小编给大家介绍的Node.js下向MySQL数据库插入批量数据网站的支持!
来源:http://blog.csdn.net/lym152898/article/details/78246230


猜你喜欢
- sql中timestamp和datetime的转换互相转换说明:将datetime转换为timestamp格式,使用UNIX_TIMESTA
- 一、forEach1.1 遍历数组var array = [1,2,3,4,5,6];/*** currentValue 当前元素* ind
- 这篇文章主要介绍了python基于property()函数定义属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 场景描述:在页面中存在顶部导航和左侧导航,左侧导航和右侧内容区使用了命名视图实现,点击左侧导航的链接时,右侧内容区相应显示不同组件内容。问题
- 英文文档:staticmethod(function)Return a static method for function.A stati
- 1.删除原有的mariadb,不然mysql装不进去mariadb-libs-5.5.52-1.el7.x86_64rpm -qa|grep
- 1.开发环境 vue2.电脑系统 windows10专业版3.在使用vue开发移动端的过程中,我们会因为兼容性而头疼,下面我来分享分享下面v
- 前言:这篇文章给大家介绍了怎样用python创建一个简单的报警,它可以运行在命令行终端,它需要分钟做为命令行参数,在这个分钟后会打印”wak
- 前段时间写了一个百度图片下载器,结果发现有很多人需要使用。说实话之前写的那一款百度图片下载器比较LOW,今天刚好有时间就做了一下升级。更新了
- 最近在使用linux上进行本地登录时,发现既然无法正常登录 , 报如下错误信息:[root@xxxx ~]# mysql -h localh
- 出错信息为: sys.servers 中找不到服务器 'BBB'。请验证指定的服务器名称是否正确。如果需要,请执行存储过程
- 我就废话不多说了,大家还是直接看代码吧~import timeimport mathimport numpy as npdef timeit
- 所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。 在Python中有很多库可以用来抓取网页,我们先学习urll
- 1.引入库需要用到3个类,ElementTree,Element以及建立子类的包装类SubElementfrom xml.etree.Ele
- 首先,来说一下对话框: 对话框在Windows应用程序中使用非常普遍,许多应用程序的设定,与用户交互需要通过对话框来进行,因此对话框是Win
- 1: 更新代码时, 监测到本地代码改变,需要和合并,重启之后才可以, 选择No同时,代码会被冲掉,新增加的文件也会被冲掉, 但是pychar
- 1.最小界面组成# 导入tkinter模块import tkinter# 创建主窗口对象root = tkinter.Tk()# 设置窗口大
- Python 类的继承详解Python既然是面向对象的,当然支持类的继承,Python实现类的继承比JavaScript简单。Parent类
- 有一张工资表SALARY如下, (NO 员工编号 ,MONEY 工资)NO NAME &nbs
- 静态页面由于其稳定性快速性,的确给SE、用户及站长带来了方便。但有时,需要记住用户的信息,如用户留下评论后,下一次再来,就要记住该用户的信息