//win7环境下node要先安装MySQL的相关组件(非安装MySQL数据库),在cmd命令行进入node项目目录后执行以下语句
//npm install mysql
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : '3306',
user : 'root',
password : '123456',
database : 'test'
});
/*
mysql.createConnection 数据库连接参数说明:
host : 主机地址 (默认:localhost)
user : 用户名
password : 密码
port : 端口号 (默认:3306)
database : 数据库名
charset : 连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
localAddress : 此IP用于TCP连接(可选)
socketPath : 连接到unix域路径,当使用 host 和 port 时会被忽略
timezone : 时区(默认:'local')
connectTimeout : 连接超时(默认:不限制;单位:毫秒)
stringifyObjects : 是否序列化对象
typeCast : 是否将列值转化为本地JavaScript类型值 (默认:true)
queryFormat : 自定义query语句格式化方法
supportBigNumbers : 数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)
bigNumberStrings : supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)
dateStrings : 强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)
debug : 开启调试(默认:false)
multipleStatements : 是否许一个query中有多个MySQL语句 (默认:false)
flags : 用于修改连接标志
ssl : 使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件
*/
connection.connect();
//查询数据
var sel_sql = 'SELECT * FROM tablename';
connection.query(sel_sql, function (error, results, fields) {
if(error){
console.log('[SELECT ERROR] - ',error.message);
//throw error;
return;
}
//fields为连接的数据库信息
//console.log(fields);
console.log(results[0].name);//返回数据第一行中name字段的值
});
/*
执行查询返回结果
名称1
*/
//插入数据
var add_sql = 'INSERT INTO tablename(id, name, age, type) VALUES(3,?,?,?)';
var add_params = ['名称3', 100, '测试'];
connection.query(add_sql,add_params, function (error, results, fields) {
if(error){
console.log('[INSERT ERROR] - ',error.message);
//throw error;
return;
}
console.log('--------------------------INSERT----------------------------');
//results.insertId新插入数据的id
//console.log('INSERT ID:',results.insertId);
console.log('INSERT ID:',results);
console.log('-----------------------------------------------------------------\n\n');
});
/*
执行插入返回结果
--------------------------INSERT----------------------------
INSERT ID: OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 3,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
-----------------------------------------------------------------
*/
//更新数据
var update_sql = 'UPDATE tablename SET name = ?, age = ?, type = ? WHERE Id = ?';
var update_params = ['名称22', 120, '正式', 2];
connection.query(update_sql,update_params, function (error, results, fields) {
if(error){
console.log('[UPDATE ERROR] - ',error.message);
//throw error;
return;
}
console.log('--------------------------UPDATE----------------------------');
//results.changedRows 改变表的条数,未改变返回0
console.log('UPDATE tablename',results.changedRows);
console.log('-----------------------------------------------------------------\n\n');
});
/*
执行更新返回结果
--------------------------UPDATE----------------------------
UPDATE tablename 1
-----------------------------------------------------------------
*/
//删除数据
var delete_sql = 'DELETE FROM tablename WHERE id = 3';
connection.query(delete_sql, function (error, results, fields) {
if(error){
console.log('[DELETE ERROR] - ',error.message);
//throw error;
return;
}
console.log('--------------------------DELETE----------------------------');
//results.affectedRows 影响的条数,一条未删,返回0
console.log('DELETE tablename',results.affectedRows);
console.log('-----------------------------------------------------------------\n\n');
});
/*
执行删除返回结果
--------------------------DELETE----------------------------
DELETE tablename 1
-----------------------------------------------------------------
*/
//结束连接
connection.end();