操作MySQL

在Node.js中操作MySQL免费看

MySQL数据库的简介,MySQL数据库的使用,数据库如何连接

06-24侠课岛    初级拔高       

后端/Node.js/Node.js 中的数据库操作 6     0     226

2. 在 Node.js 中操作 MySQL

相信只要是学习过编程的小伙伴一定听说过 MySQL。作为一个著名开源的关系型数据库,在实际的工作中的运用也非常地广泛。过去一直作为 Oracle 的对手般的存在,如今在被甲骨文收购之后,也依旧作为开源数据库的首选。在互联网时代兴起时,MySQL 就和 PHP、JAVA 一起支撑起各大网站,也出现了 WAMP、LAMP 这样的集成工具。

现在到了 Node.js 做后台的时代了。在这一章,我们主要介绍在 Node.js 中如何操作 MySQL。使用 Node.js 做后台框架的小伙伴一定不要错过哦~

2.1 MySQL 数据库简介

MySQL 就是在众多数据库产品中最受欢迎的一种。由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

在 Node.js 中要连接 MySQL 的话,就需要使用到第三方的库。这一章中将介绍 mysqlknex 两个库。两个都是非常优秀的类库,在使用上也十分方便。不过,两个的风格略有不同。要做个比较的话,大概像 Mybatis 和 Hibernate 这样吧。

在继续进行本章内容前,请先准备好 MySQL 和基本的 SQL 知识。有关于这部分的内容可以参照 这里 来进行学习(包含了从安装到基本概念的内容)。

2.2 mysql 库的使用

mysql 是一个完全由 JavaScript 所写成的 MySQL 连接工具。因此在 Node.js 上无需再做其他的配置,可以无缝使用。但是对于数据库的操作并没有做过多的封装,主要是通过原生的 SQL 语句进行,因此需要对 SQL 语句有一定的了解。在 mysql 中的方法都是回调的形式,在书写上需要我们注意(能拆分的尽量拆分,避免形成回调地狱)。

在 Node.js 上,我们只要执行 npm 命令就可以安装 mysql 了。

npm install mysql

安装完成之后那么就来进行实际的操作吧。

2.2.1 数据库的连接

第一步自然是要连接我们的数据库了。首先我们需要引入 mysql 库,通过调用 createConnection 方法进行数据库的连接,方法所接受的参数就是数据库的相关配置(我个人的习惯是写在另外的配置文件中管理,这样比较清晰也方便复用)。下面是官方给出的例子。

var mysql      = require('mysql')
var connection = mysql.createConnection({
  host     : 'example',
  user     : 'admin',
  password : '******',
  database : 'my_db'
})

上面的例子中给出的数据库配置是最基本的配置。除了必须的数据库地址、用户名、要连接的数据库之外。mysql 还提供了其他可以供我们配置的参数。下面将列出的是比较常用的配置,完整的参数列表可以参考 官方文档

编号 参数名 说明
1 port 端口号,默认为 3306
2 charset 字符集,默认为 UTF8_GENERAL_CI。如果有表情等拓展字符串的话,要使用 utf8mb4
3 timezone 时区,默认为 local 当地时区
4 connectTimeout 超时时间,默认为 1000 毫秒
5 supportBigNumbers 大数处理,默认为 false。当数据库中有 BIGNUMBER 或者 DECIMAL 类型的数据时,要开启此项
6 bigNumberStrings supportBigNumbers 联动。如果仅配置 supportBigNumbers 在返回时会返回字符串而非 JavaScript 的 Number 对象(当范围在 [-2^53, +2^53] 之外时)。
7 dateStrings 让日期型数据以 JavaScript 的 Date 型返回

上面仅仅只是对 connection 进行了配置,并且得到一个 connection 对象。这个 connection 对象是 mysql 这个库的关键。因为后面的所有操作都是在这个对象上进行的。在使用之前,我们还需要打开 connection。我们使用 connection.connect() 方法打开连接,该方法有一个回调,可以用来监听错误时的信息。

connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }

  console.log('connected as id ' + connection.threadId);
});

如果 connection.connect() 方法没有问题的话,就可以进行数据库的操作了。对于数据库的操作,我们通过 connection.query() 的方法进行。在 query 方法中,我们传入编写好的 SQL 语句来执行我们需要的操作,详细的说明我们会在下一小节展开。这里只需要知道执行 SQL 操作都是使用 connection.query() 方法即可。

connection.query('SELECT * from my_table', function (error, results, fields) {
  if (error) throw error;
  // connected!
});

自然,有建立连接就有关闭连接。mysql 为我们提供了两种方法来关闭数据库的连接。分别是 connection.end()connection.destory()。两者主要的区别在于end 要相对“温和”一些,会在所有的 SQL 执行完毕后关闭连接,并且提供一个回调函数用来处理错误。而 destory 则十分暴力,会立即关闭连接,并且不会提供回调函数供我们调用。通常清下,建议使用 connection.end() 方法。

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

6

本课评分:
  •     非常好
难易程度:
  •     适中的
|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?