国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫

這篇具有很好參考價值的文章主要介紹了nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1. 建庫連庫

連接MySQL數(shù)據(jù)庫需要安裝支持

npm install mysql

我們需要提前安裝按mysql sever端

建一個數(shù)據(jù)庫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數(shù)據(jù)庫

 var mysql  = require('mysql');  //調(diào)用MySQL模塊
 //創(chuàng)建一個connection  
 var connection = mysql.createConnection({      
     host: 'localhost',       //主機(jī)  
     user: 'root',               //MySQL認(rèn)證用戶名  
     password: 'root',        //MySQL認(rèn)證用戶密碼  
     database: 'mydb1',  
     port: '3306'                   //端口號  
 });
 //創(chuàng)建一個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');
 });
 //執(zhí)行查詢  
 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); 
     }
 });   
 
 //關(guān)閉connection  
 connection.end(function(err){  
     if(err){ 
         console.log(err.toString());
         return;  
     }  
     console.log('[connection end] succeed!');  
 }); 

但是實(shí)際每次創(chuàng)建連接都需要一定的開銷,執(zhí)行效率就會有影響。下面介紹一種連接池連mysql的方法:node-mysql

2. 連接池配置使用

node-mysql是目前最火的node下的mysql驅(qū)動,是mysqlpool的一個模塊。

下面的代碼是提供一個連接池,getPool函數(shù)返回createPool創(chuàng)建的數(shù)據(jù)庫連接池對象。

 var mysql  = require('mysql');  //調(diào)用MySQL模塊 
 function OptPool(){ 
     this.flag=true; //是否連接過 
     this.pool = mysql.createPool({     
         host: 'localhost',       //主機(jī) 
         user: 'root',               //MySQL認(rèn)證用戶名 
         password: 'root',        //MySQL認(rèn)證用戶密碼 
         database: 'test', 
         port: '3306'                   //端口號 
     }); 
  
     this.getPool=function(){ 
         return this.pool; 
     } 
 }; 
 module.exports = OptPool; 

下面的代碼展示如何使用這個連接池,插入和查詢的使用。需要注意的是conn.release();?//釋放一個連接放回連接池 需要再操作結(jié)束后再執(zhí)行,否則后面的數(shù)據(jù)庫操作會報錯。

下面介紹一個復(fù)雜一點(diǎn)的增刪查改的數(shù)據(jù)庫操作,因相互之間有依賴,所以代碼可讀性就變得特別差。這樣就引出了我們接下來要介紹餓流程控制的內(nèi)容《nodejs進(jìn)階(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]);
                         }
                     });
                 });
             });
         });
     });
 })

運(yùn)行結(jié)果

nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫

?文章來源地址http://www.zghlxwxcb.cn/news/detail-449201.html

到了這里,關(guān)于nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 高性能服務(wù)器Nodejs操作Mysql數(shù)據(jù)庫

    高性能服務(wù)器Nodejs操作Mysql數(shù)據(jù)庫

    數(shù)據(jù)庫和身份認(rèn)證 配置 mysql 模塊 安裝 mysql 模塊 建立連接 測試是否正常工作 1.2 操作 mysql 數(shù)據(jù)庫 查詢數(shù)據(jù) 插入數(shù)據(jù) 向表中新增數(shù)據(jù)時,如果數(shù)據(jù)對象的每個屬性和數(shù)據(jù)表的字段一一對應(yīng),則可以通過如下方式快速插入數(shù)據(jù): 更新數(shù)據(jù) 快捷方式: 刪除數(shù)據(jù) 使用 delete 語句

    2024年02月11日
    瀏覽(40)
  • MySQL數(shù)據(jù)庫學(xué)習(xí)【進(jìn)階篇】

    MySQL數(shù)據(jù)庫學(xué)習(xí)【進(jìn)階篇】

    MySQL進(jìn)階篇已經(jīng)更新完畢,點(diǎn)擊網(wǎng)址查看??:MySQL數(shù)據(jù)庫進(jìn)階篇

    2024年02月10日
    瀏覽(24)
  • 【python】進(jìn)階--->MySQL數(shù)據(jù)庫(五)

    pymysql模塊(pip安裝) connect 方法參數(shù)說明: host : 主機(jī)( 127.0.0.1 )(字符串) port : 端口號 3306 user : 用戶名 root (字符串) passwd : 密碼 (字符串格式) db : 連接的 數(shù)據(jù)庫名 (字符串) charset : 連接的 編碼 (字符串) cursor() : 返回的 游標(biāo)對象 ,查詢語句中的結(jié)果保存在 元組 中. cursor(pymysql.curs

    2024年01月16日
    瀏覽(26)
  • 【python】進(jìn)階--->MySQL數(shù)據(jù)庫(四)

    【python】進(jìn)階--->MySQL數(shù)據(jù)庫(四)

    ?創(chuàng)建表時,不直接在字段后面添加主鍵,在表的約束區(qū)添加主鍵 ?創(chuàng)建表時不寫主鍵,表創(chuàng)建后,通過修改表的結(jié)構(gòu),給某個字段添加主鍵 unique約束唯一標(biāo)識數(shù)據(jù)庫表中的每條記錄. primary key 自動 擁有了unique的約束. ?創(chuàng)建表時,直接在字段后面添加唯一約束 ?創(chuàng)建表時,在約束區(qū)

    2024年01月18日
    瀏覽(54)
  • 【Java 進(jìn)階篇】深入理解 JDBC:Java 數(shù)據(jù)庫連接詳解

    【Java 進(jìn)階篇】深入理解 JDBC:Java 數(shù)據(jù)庫連接詳解

    數(shù)據(jù)庫是現(xiàn)代應(yīng)用程序的核心組成部分之一。無論是 Web 應(yīng)用、移動應(yīng)用還是桌面應(yīng)用,幾乎都需要與數(shù)據(jù)庫交互以存儲和檢索數(shù)據(jù)。Java 提供了一種強(qiáng)大的方式來實(shí)現(xiàn)與數(shù)據(jù)庫的交互,即 JDBC(Java 數(shù)據(jù)庫連接)。本文將深入探討 JDBC 的各個方面,從基本概念到實(shí)際編程示例

    2024年02月07日
    瀏覽(26)
  • 【數(shù)據(jù)庫】MySQL 高級(進(jìn)階) SQL 語句

    【數(shù)據(jù)庫】MySQL 高級(進(jìn)階) SQL 語句

    location表格創(chuàng)建 store_info表格創(chuàng)建 顯示表格中一個或數(shù)個字段的所有數(shù)據(jù)記錄 不顯示重復(fù)的數(shù)據(jù)記錄 按照條件進(jìn)行查詢 在已知的字段數(shù)據(jù)取值范圍內(nèi)取值 另外還有not in命令,用法一致,表示顯示不在指定范圍內(nèi)的字段的值。 在兩個字段數(shù)據(jù)值之間取值,包含兩邊字段的數(shù)據(jù)

    2024年02月09日
    瀏覽(28)
  • 【MySQL】使用DBeaver數(shù)據(jù)庫管理工具進(jìn)行MySQL數(shù)據(jù)庫連接

    【MySQL】使用DBeaver數(shù)據(jù)庫管理工具進(jìn)行MySQL數(shù)據(jù)庫連接

    一、數(shù)據(jù)庫連接信息填寫 1、服務(wù)器地址:填寫服務(wù)器部署的地址,以及端口號 2、數(shù)據(jù)庫:sys 3、用戶名:root 4、密碼:服務(wù)器上面設(shè)置的具體密碼 以上信息填寫錯誤的報錯提示 :Access denied for user ‘XXX’@’%’ to database ‘10.42.67.22’ 二、數(shù)據(jù)庫說明 1、數(shù)據(jù)庫連接時選擇的

    2024年02月09日
    瀏覽(109)
  • 【Java 進(jìn)階篇】JDBC 數(shù)據(jù)庫連接池 C3P0 詳解

    【Java 進(jìn)階篇】JDBC 數(shù)據(jù)庫連接池 C3P0 詳解

    數(shù)據(jù)庫連接池是數(shù)據(jù)庫編程中常用的一種技術(shù),它可以有效地管理數(shù)據(jù)庫連接,提高數(shù)據(jù)庫訪問的性能和效率。在 Java 編程中,有多種數(shù)據(jù)庫連接池可供選擇,其中之一就是 C3P0。本文將詳細(xì)介紹 C3P0 數(shù)據(jù)庫連接池的使用,包括原理、配置、常見問題和示例代碼,旨在幫助基

    2024年02月04日
    瀏覽(90)
  • 【一文詳解】知識分享:(MySQL關(guān)系型數(shù)據(jù)庫知識進(jìn)階)

    【一文詳解】知識分享:(MySQL關(guān)系型數(shù)據(jù)庫知識進(jìn)階)

    Mysql體系結(jié)構(gòu): 連接層 位于最上層,是一些客戶端和連接服務(wù),主要完成一些類似于連接處理,授權(quán)認(rèn)證及相關(guān)的安全方案。 服務(wù)器也會為安全接入的每個客戶端驗(yàn)證它所具有的操作權(quán)限。 服務(wù)層 第二層,主要完成大多數(shù)的核心服務(wù)功能,如sql接口,并完成緩存的查詢,sql的分析和優(yōu)

    2024年02月02日
    瀏覽(58)
  • MySQL數(shù)據(jù)庫,JDBC連接數(shù)據(jù)庫操作流程詳細(xì)介紹

    MySQL數(shù)據(jù)庫,JDBC連接數(shù)據(jù)庫操作流程詳細(xì)介紹

    在學(xué)完 MySQL 和 Java 后,我們通常會嘗試使用 Java編譯器 連接 MySQL數(shù)據(jù)庫,從而達(dá)到使用編譯器來操作數(shù)據(jù)庫的效果。連接的這個過程會用 JDBC 相關(guān)知識,因此我把 JDBC 包的下載及導(dǎo)入流程,以及 JDBC 的使用流程整理下來分享給大家。 目錄 1. 啥是JDBC? 2. JDBC依賴包 2.1 依賴包

    2024年02月06日
    瀏覽(99)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包