mysql数据库封装

文章介绍了在Node.js中使用mysql库对数据库进行封装,包括基本的连接、查询操作以及更高级的封装如类结构,以提高代码组织和重用性。
摘要由CSDN通过智能技术生成

一、

//完成数据库的封装

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值