nodejs进阶(6)—连接MySQL数据库

这篇具有很好参考价值的文章主要介绍了nodejs进阶(6)—连接MySQL数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 建库连库

连接MySQL数据库需要安装支持

npm install mysql

我们需要提前安装按mysql sever端

建一个数据库mydb1

mysql> CREATE DATABASE mydb1;
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| mydb1             |
| performance_schema |
+--------------------+
 rows in set (0.00 sec)

然后建一张表user如下

create table user(  
id int not null primary key auto_increment,  
name VARCHAR() not null,  
pwd VARCHAR() not null,
create_date TIMESTAMP NULL DEFAULT now()
)ENGINE=InnoDB DEFAULT CHARSET=utf8;  
CREATE UNIQUE INDEX t_quiz_IDX_0 on user(name);

接下来我们利用nodejs连接mysql数据库

 var mysql  = require('mysql');  //调用MySQL模块
 //创建一个connection  
 var connection = mysql.createConnection({      
     host: 'localhost',       //主机  
     user: 'root',               //MySQL认证用户名  
     password: 'root',        //MySQL认证用户密码  
     database: 'mydb1',  
     port: '3306'                   //端口号  
 });
 //创建一个connection  
 connection.connect(function(err){  
     if(err){         
         console.log('[query] - :'+err);  
         return;  
     }  
     console.log('[connection connect]  succeed!');  
 }); 
 //----插入
 var userAddSql = 'insert into user (name,pwd) values(?,?)';
 var param = ['fff','123'];
 connection.query(userAddSql,param,function(err,rs){
     if(err){
         console.log('insert err:',err.message);
         return;
     }
         console.log('insert success');
 });
 //执行查询  
 connection.query('SELECT * from user where id=?',[2], function(err, rs) {  
     if (err) {  
         console.log('[query] - :'+err);  
         return;  
     } 
     for(var i=0;i<rs.length;i++){
         console.log('The solution is: ', rs[i].uname); 
     }
 });   
 
 //关闭connection  
 connection.end(function(err){  
     if(err){ 
         console.log(err.toString());
         return;  
     }  
     console.log('[connection end] succeed!');  
 }); 

但是实际每次创建连接都需要一定的开销,执行效率就会有影响。下面介绍一种连接池连mysql的方法:node-mysql

2. 连接池配置使用

node-mysql是目前最火的node下的mysql驱动,是mysqlpool的一个模块。

下面的代码是提供一个连接池,getPool函数返回createPool创建的数据库连接池对象。

 var mysql  = require('mysql');  //调用MySQL模块 
 function OptPool(){ 
     this.flag=true; //是否连接过 
     this.pool = mysql.createPool({     
         host: 'localhost',       //主机 
         user: 'root',               //MySQL认证用户名 
         password: 'root',        //MySQL认证用户密码 
         database: 'test', 
         port: '3306'                   //端口号 
     }); 
  
     this.getPool=function(){ 
         return this.pool; 
     } 
 }; 
 module.exports = OptPool; 

下面的代码展示如何使用这个连接池,插入和查询的使用。需要注意的是conn.release(); //释放一个连接放回连接池 需要再操作结束后再执行,否则后面的数据库操作会报错。

下面介绍一个复杂一点的增删查改的数据库操作,因相互之间有依赖,所以代码可读性就变得特别差。这样就引出了我们接下来要介绍饿流程控制的内容《nodejs进阶(7)—async异步流程控制》

 var OptPool = require('./models/OptPool'); 
  
 var optPool = new OptPool(); 
 var pool = optPool.getPool(); 
 
 var insertSQL = 'insert into table1(name,pwd) values("conan","123"),("fens.me","456")';
 var selectSQL = 'select * from table1 limit 10';
 var deleteSQL = 'delete from table1';
 var updateSQL = 'update table1 set name="conan update"  where name="conan"';
 
 pool.getConnection(function(err,conn){ 
 //delete
     conn.query(deleteSQL, function (err0, res0) {
         if (err0) console.log(err0);
         console.log("DELETE Return ==> ");
         console.log(res0);
 
         //insert
         conn.query(insertSQL, function (err1, res1) {
             if (err1) console.log(err1);
             console.log("INSERT Return ==> ");
             console.log(res1);
 
             //query
             conn.query(selectSQL, function (err2, rows) {
                 if (err2) console.log(err2);
 
                 console.log("SELECT ==> ");
                 for (var i in rows) {
                     console.log(rows[i]);
                 }
 
                 //update
                 conn.query(updateSQL, function (err3, res3) {
                     if (err3) console.log(err3);
                     console.log("UPDATE Return ==> ");
                     console.log(res3);
 
                     //query
                     conn.query(selectSQL, function (err4, rows2) {
                         if (err4) console.log(err4);
 
                         console.log("SELECT ==> ");
                         for (var i in rows2) {
                             console.log(rows2[i]);
                         }
                     });
                 });
             });
         });
     });
 })

运行结果

nodejs进阶(6)—连接MySQL数据库

 文章来源地址https://www.toymoban.com/news/detail-449201.html

到了这里,关于nodejs进阶(6)—连接MySQL数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高性能服务器Nodejs操作Mysql数据库

    数据库和身份认证 配置 mysql 模块 安装 mysql 模块 建立连接 测试是否正常工作 1.2 操作 mysql 数据库 查询数据 插入数据 向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据: 更新数据 快捷方式: 删除数据 使用 delete 语句

    2024年02月11日
    浏览(53)
  • MySQL数据库学习【进阶篇】

    MySQL进阶篇已经更新完毕,点击网址查看👉:MySQL数据库进阶篇

    2024年02月10日
    浏览(35)
  • 【python】进阶--->MySQL数据库(四)

    创建表时,不直接在字段后面添加主键,在表的约束区添加主键 创建表时不写主键,表创建后,通过修改表的结构,给某个字段添加主键 unique约束唯一标识数据库表中的每条记录. primary key 自动 拥有了unique的约束. 创建表时,直接在字段后面添加唯一约束 创建表时,在约束区

    2024年01月18日
    浏览(46)
  • 【python】进阶--->MySQL数据库(五)

    pymysql模块(pip安装) connect 方法参数说明: host : 主机( 127.0.0.1 )(字符串) port : 端口号 3306 user : 用户名 root (字符串) passwd : 密码 (字符串格式) db : 连接的 数据库名 (字符串) charset : 连接的 编码 (字符串) cursor() : 返回的 游标对象 ,查询语句中的结果保存在 元组 中. cursor(pymysql.curs

    2024年01月16日
    浏览(43)
  • 【Java 进阶篇】深入理解 JDBC:Java 数据库连接详解

    数据库是现代应用程序的核心组成部分之一。无论是 Web 应用、移动应用还是桌面应用,几乎都需要与数据库交互以存储和检索数据。Java 提供了一种强大的方式来实现与数据库的交互,即 JDBC(Java 数据库连接)。本文将深入探讨 JDBC 的各个方面,从基本概念到实际编程示例

    2024年02月07日
    浏览(59)
  • 【数据库】MySQL 高级(进阶) SQL 语句

    location表格创建 store_info表格创建 显示表格中一个或数个字段的所有数据记录 不显示重复的数据记录 按照条件进行查询 在已知的字段数据取值范围内取值 另外还有not in命令,用法一致,表示显示不在指定范围内的字段的值。 在两个字段数据值之间取值,包含两边字段的数据

    2024年02月09日
    浏览(136)
  • 【MySQL】使用DBeaver数据库管理工具进行MySQL数据库连接

    一、数据库连接信息填写 1、服务器地址:填写服务器部署的地址,以及端口号 2、数据库:sys 3、用户名:root 4、密码:服务器上面设置的具体密码 以上信息填写错误的报错提示 :Access denied for user ‘XXX’@’%’ to database ‘10.42.67.22’ 二、数据库说明 1、数据库连接时选择的

    2024年02月09日
    浏览(91)
  • 【Java 进阶篇】JDBC 数据库连接池 C3P0 详解

    数据库连接池是数据库编程中常用的一种技术,它可以有效地管理数据库连接,提高数据库访问的性能和效率。在 Java 编程中,有多种数据库连接池可供选择,其中之一就是 C3P0。本文将详细介绍 C3P0 数据库连接池的使用,包括原理、配置、常见问题和示例代码,旨在帮助基

    2024年02月04日
    浏览(77)
  • 【一文详解】知识分享:(MySQL关系型数据库知识进阶)

    Mysql体系结构: 连接层 位于最上层,是一些客户端和连接服务,主要完成一些类似于连接处理,授权认证及相关的安全方案。 服务器也会为安全接入的每个客户端验证它所具有的操作权限。 服务层 第二层,主要完成大多数的核心服务功能,如sql接口,并完成缓存的查询,sql的分析和优

    2024年02月02日
    浏览(76)
  • MySQL数据库,JDBC连接数据库操作流程详细介绍

    在学完 MySQL 和 Java 后,我们通常会尝试使用 Java编译器 连接 MySQL数据库,从而达到使用编译器来操作数据库的效果。连接的这个过程会用 JDBC 相关知识,因此我把 JDBC 包的下载及导入流程,以及 JDBC 的使用流程整理下来分享给大家。 目录 1. 啥是JDBC? 2. JDBC依赖包 2.1 依赖包

    2024年02月06日
    浏览(104)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包