Node.js连接MySQL

Node.js连接MySQL

标签(空格分隔): 系统分析与设计


三层架构

   使 我 们 使 用 三 层 架 构 来 实 现 整 个 项 目 的 开 发
  Node.js连接MySQL_第1张图片
  业务层在其中起着承上启下的作用,所以这篇博客主要介绍如何使用Node.js来访问MySQL,进而实现表现层与数据层之间的数据交互。


Node.js

  • 简单的说 Node.js 就是运行在服务端的 JavaScript。
  • Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
  • Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

  如果你是一个前端程序员但是又不懂PHP,Python等这样的动态语言的话,可以选择使用Node.js快速创建自己的服务。

  如果你是一个后端程序员,想部署一些高性能服务,Node.js将会锦上添花。

  Node.js需要学习的内容比较多,这篇博客主要注重于讲述Node.js连接MySQL的方法,所以这里仅提供一个学习Node.js的教程链接:Node.js教程链接


MySQL

   MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
  MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

下面是MySQL的一些特性:

  • MySQL M y S Q L 是 开 源 的 , 所 以 你 不 需 要 支 付 额 外 的 费 用 。
  • MySQL M y S Q L 支 持 大 型 的 数 据 库 。 可 以 处 理 拥 有 上 千 万 条 记 录 的 大 型 数 据 库 。
  • MySQL使SQL M y S Q L 使 用 标 准 的 S Q L 数 据 语 言 形 式 。
  • MySQLCC++PythonJavaPerlPHPEiffelRubyTcl M y S Q L 可 以 运 行 于 多 个 系 统 上 , 并 且 支 持 多 种 语 言 。 这 些 编 程 语 言 包 括 C 、 C + + 、 P y t h o n 、 J a v a 、 P e r l 、 P H P 、 E i f f e l 、 R u b y 和 T c l 等 。
  • MySQLPHPPHPWeb M y S Q L 对 P H P 有 很 好 的 支 持 , P H P 是 目 前 最 流 行 的 W e b 开 发 语 言 。
  • MySQL5000324GB648TB M y S Q L 支 持 大 型 数 据 库 , 支 持 5000 万 条 记 录 的 数 据 仓 库 , 32 位 系 统 表 文 件 最 大 可 支 持 4 G B , 64 位 系 统 支 持 最 大 的 表 文 件 为 8 T B 。
  • MySQLGPLMySQL M y S Q L 是 可 以 定 制 的 , 采 用 了 G P L 协 议 , 你 可 以 修 改 源 码 来 开 发 自 己 的 M y S Q L 系 统 。

  MySQL数据库需要学习的内容也比较多,这篇博客主要注重于讲述Node.js连接MySQL的方法,所以这里仅提供一个学习MySQL的教程链接:MySQL教程


Node.js连接MySQL

  Node.js连接MySQL_第2张图片

连接数据库

这里返回的是数据库中comment表单的内容
Node.js连接MySQL_第3张图片

数据库连接参数说明

参数 含义
host 这里是数据库的主机地址,我们使用了云服务器,所以119.23.52.67是这个云服务器的IP地址
user 登陆名,我们使用的名字为’root’
password 登陆密码,我们使用的密码为’meal_order_system’
port 端口号,使用默认端口号:3306
database 数据库名

更多的参数说明参见:参数说明

数据库操作(CURD)

  查询操作:

// 返回comment表单
get_momment = function(callback){

    connection.connect();
    var  sql = 'SELECT * FROM comment';
    connection.query(sql,function (err, result) {
            if(err){
             console.log('[SELECT ERROR] - ',err.message);
            return;
            }
            console.log('--------------------------SELECT----------------------------');
            console.log(result);
            console.log('------------------------------------------------------------\n\n');  
            callback(result);
    });
    connection.end();
}

  插入操作:

connection.connect();
var  addSql = 'INSERT INTO comment(comment_id,comment_guestname,comment_time,comment_score,comment_details,food_id) VALUES(0,?,?,?,?,?)';
var  addSqlParams = ['Alvin','2018/12/12','8','很好吃','5'];
//增
connection.query(addSql,addSqlParams,function (err, result) {
        if(err){
         console.log('[INSERT ERROR] - ',err.message);
         return;
        }        

       console.log('--------------------------INSERT----------------------------');
       //console.log('INSERT ID:',result.insertId);        
       console.log('INSERT ID:',result);        
       console.log('-----------------------------------------------------------------\n\n');  
});

connection.end();

  更新数据:

connection.connect();

var modSql = 'UPDATE comment SET comment_guestname = ?,comment_time = ? WHERE comment_id = ?';
var modSqlParams = ['Alvin', '2018/12/13',0];
//改
connection.query(modSql,modSqlParams,function (err, result) {
   if(err){
         console.log('[UPDATE ERROR] - ',err.message);
         return;
   }        
  console.log('--------------------------UPDATE----------------------------');
  console.log('UPDATE affectedRows',result.affectedRows);
  console.log('-----------------------------------------------------------------\n\n');
});

connection.end();

  删除数据:

connection.connect();

var delSql = 'DELETE FROM comment where comment_id=0';
//删
connection.query(delSql,function (err, result) {
        if(err){
          console.log('[DELETE ERROR] - ',err.message);
          return;
        }        

       console.log('--------------------------DELETE----------------------------');
       console.log('DELETE affectedRows',result.affectedRows);
       console.log('-----------------------------------------------------------------\n\n');  
});

connection.end();

你可能感兴趣的:(系统分析与设计)