IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> nodejs封装sql数据库查询 -> 正文阅读

[大数据]nodejs封装sql数据库查询

一、连接数据库配置文件

//连接数据库配置文件
const dbConfig = {
    host: '127.0.0.1',    //数据库地址
    port: 3306,           //数据库端口
    user: 'root',        //用户名
    password: 'root',    //数据库密码
    database: 'testdb'    //数据库名
};

export default dbConfig;

二、数据库查询封装文件

????????①? ?封装数据库查询(使用连接池)

数据库连接池是一种比较常见的数据库优化的方式,一个连接请求过来后,会创建新的数据库连接,SQL 语句执行完成后,创建的连接不会被销毁,而是放到了”连接池“中,等待后面的连接使用。节省了大量创建连接销毁连接的时间,也能降低服务器资源损耗,及时的释放连接也避免了出现数据库连接过多的情况。

import mysql from 'mysql';                //导入mysql模块
import dbConfig from '../config/db';      //导入数据连接配置

const pool = mysql.createPool(dbConfig);    //创建数据库连接池

const query = (sql) => {            //封装查询函数
    return new Promise<any>((resolve, reject) => {
        pool.getConnection((error, connection) => {        //从连接池中取出连接
            if (error) {
                reject(error);                //返回连接错误
            } else {                          //连接成功则
                connection.query(sql, (error, results) => {
                    if (error) {            //查询错误返回
                        reject(error);
                    } else {                //查询成功返回结果
                        resolve(results);
                    }
                    connection.release();    //执行完一次数据操作,将连接放回连接池
                })
            }
        });
    });
};

export default query;

//const pool = mysql.createPool(dbConfig);        //创建数据库连接池
//pool.getConnection((error, connection) => {})   //从连接池中取出连接
//pool.end()               //关闭连接池
//connection.destroy()     //从连接池中移除某个连接
//connection.release();    //执行完一次数据操作,将连接放回连接池

????????②? ?不使用连接池

数据库每次建立连接对于服务器消耗是相对比较大的,此方法每次查询就建立一次连接,查询完成后断开,可以避免数据库连接超时的问题,,如果只是做测试的,或者个人网站,访问较少,很少使用查询,可以使用此方法,不用的时候会断开连接,不会占用服务器资源


import mysql from 'mysql';                //导入mysql模块
import dbConfig from '../config/db';      //导入数据连接配置

function myQuery(sql = '') {
    return new Promise((resolve) => {
        let connObj = mysql.createConnection(dbConfig)   //创建数据库连接
        connObj.query(sql, (err, result) => {
            // console.log(err);
            resolve({ err, result })
        })
        connObj.end()       //查询完成,断开数据库连接
    })
}
module.exports = myQuery

三、在需要使用的页面进行调用

//先导入
import query from '../models/query';


search(){
    let sql = `xxxxxxxxxxxxxxxx`;    //sql语句
    let result = await query(sql);        //执行查询量结果
}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:27:52  更:2021-11-20 18:29:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:04:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码