我已经编写了下列代码,通过使用for循环读取JSON来插入记录集。使用node.js在MySql中批量插入
这是我的代码:
的node.js:
var MySQLHelper = {
composeQuery:
function(stpName, paramArray) {
var statement = "call " + stpName + "(";
for(var i = 0, len = paramArray.length; i < len; ++i) {
var p = paramArray[i];
statement += "'" + p +"'"; // add a parameter
if (i != len-1) {
statement += ","; // add a parameter seperater
}
else {
statement += ")"; // closing statement
}
}
return statement;
}
}
Dam.prototype.InsertPreset = function(taskInfo) {
// Compose a dynamic mySQL query statement for inserting a preset
for(var i=0;i<taskInfo.presetList.length;i++){
var insert_preset_statement =MySQLHelper.composeQuery('preset_insert',
[ taskInfo.presetList[i].Name,
taskInfo.presetList[i].Category,
taskInfo.presetList[i].GUID
]);
this.connection.query(insert_preset_statement, function(err, result) {
if (err) {
console.log('db error:' + err);
}
else {
console.log('db task : Successfully Added');
}
});
}
}
JSON:
{
"presetList": [
{
"Name": "AARAMBAMTestfile",
"Category": "Harmonic",
"GUID": "ABC10203"
},
{
"Name": "ENDHIRANTestfile",
"Category": "Harmonic",
"GUID": "DRU03472"
}
]
}
要做到这一点,我已经写了正常的插存储过程在MySql中,它给出如下:
MySQL SP:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `preset_insert`(
IN p_Name varchar(50),
IN p_Category varchar(50),
IN p_GUID varchar(50)
)
BEGIN
INSERT INTO Preset
(
PresetName,
PresetCategory,
PresetGUID,
)
VALUES
(
p_Name,
p_Category,
p_GUID
);
END
上述代码工作正常。但我不想使用for循环逐个插入。 但是我不想使用for循环来做这件事,我想在一次性使用insert insert语句来进行批量插入。如何使用node.js来做到这一点?
嘿,thevan。我有一个JSON对象数组。'[{uid:'',name:''},{uid:'',name:''}]'。你有任何想法如何批量插入到mysql使用nodejs? Nandri! – Bharath