Node js MySQL简单操作

//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();

 

posted @ 2018-03-23 23:31  风吹屁股凉冰冰  阅读(265)  评论(0编辑  收藏  举报