mysql数据库封装

一、

//完成数据库的封装

const mysql= require('mysql')

function db(sql) {
    return new Promise((resolve, reject) => {
        //1.配置连接
        const conn = mysql.createConnection({
            host: "127.0.0.1",//主机名
            user: "root",//数据账号
            password: "root",//数据库密码
            database: "students",//要连接的数据库
            charset: "utf8",//编码格式
        })

        //2.建立连接
        conn.connect(err => {
            if (!err) {
                console.log('链接成功。。。。。');
            }
        })

        //3.执行操作
        conn.query(sql, (err, data) => {
            if (err) {
                console.log('数据库操作失败:', err);
                // reject(err)
                resolve([err,null])
                return
            }            
            resolve([null,data])
        })

        //4.关闭连接
        conn.end();
    });
}

module.exports=db;

二、

//完成数据库的封装

const mysql = require('mysql')


//1.配置连接
const conn = mysql.createConnection({
    host: "127.0.0.1",//主机名
    user: "root",//数据账号
    password: "root",//数据库密码
    database: "students",//要连接的数据库
    charset: "utf8",//编码格式
})

//2.建立连接
conn.connect(err => {
    if (!err) {
        console.log('链接成功。。。。。');
    }
})

function query(sql) {
    //3.执行操作
    return new Promise((resolve, reject) => {
        conn.query(sql, (err, data) => {
            if (err) {
                console.log('数据库操作失败:', err);
                // reject(err)
                resolve([err,null])
                return
            }
            resolve([null,data])
        })
    })
}



//4.关闭连接
// conn.end();
function close(){
    conn.end();
}


module.exports = {
    query,close
};

三、

const mysql = require('mysql');
const path=require('path');

//数据库操作类
class DB {
    constructor(config) {
        //配置项
        this.config=config;
        // this.config = {
        //     host: "127.0.0.1",//主机名
        //     user: "root",//数据账号
        //     password: "root",//数据库密码
        //     database: "students",//要连接的数据库
        //     charset: "utf8",//编码格式
        // }
        this.conn = null;

        this.init();
    }

    //初始化
    init() {
        this.conn = mysql.createConnection(this.config);//创建数据库连接
        this.conn.connect(err => {
            if (err) console.log('连接数据库失败:', err);
        });
    }

    //执行数据库操作
    operator(sql) {
        return new Promise(resolve => {
            this.conn.query(sql, (err, rst) => {
                err ? resolve([err, null]) : resolve([null, rst])
            })
        });
    }

    close() {
        this.conn.end();//关闭连接
    }
}

let buf=require("node:fs").readFileSync(path.join(__dirname,'..',"config",'config.json'));
// console.log(buf.toString());

let db = new DB(JSON.parse(buf.toString()));
module.exports = db;


//使用
// let db=new DB();
// db.query()