资讯详情

(Node) JavaScript连接MySQL

文章目录

  • MySQL结构
  • 建立项目
  • 分析代码
    • 完整代码
    • 创建连接
    • 执行SQL
    • 关闭连接
  • END

MySQL结构

 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0;  -- ---------------------------- -- Table structure for person -- ---------------------------- DROP TABLE IF EXISTS `person`; CREATE TABLE `person`  (   `id` int(10) NOT NULL,   `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,   `age` int(11) NULL DEFAULT NULL,   PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;  -- ---------------------------- -- Records of person -- ---------------------------- INSERT INTO `person` VALUES (1, '张三', 18); INSERT INTO `person` VALUES (2, '李四', 19); INSERT INTO `person` VALUES (3, '王五', 20); INSERT INTO `person` VALUES (4, '赵六', 20); SET FOREIGN_KEY_CHECKS = 1; 

在这里插入图片描述

建立项目

这一块不放过多步骤,不懂的可以查看我的相关博客:(Node) 借助express搭建微型服务器

# 建立项目
npm init

# 安装MySQL依赖
npm i mysql

package.json 文件

{ 
        
  "name": "demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": { 
        
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": { 
        
    "mysql": "^2.18.1"
  }
}

分析代码

完整代码

//引入mysql 模块
const mysql = require('mysql')

// 创建数据库连接对象
const connection = mysql.createConnection({ 
        
    host: 'localhost',              // 主机
    port: '3306',                   // 端口号 
    user: 'root',                   // 用户名
    password: '',                   // 密码
    database: 'tmp_database'        // 数据库名
})

// 创建连接
connection.connect((error) => { 
        
    if (error) { 
        
        console.log('连接出错,出错信息:');
        console.log(error);
    } else { 
        
        console.log('error为null 连接成功');
    }
});

function jsSelect() { 
        
    console.log('***** jsSelect 执行查询 *****');

    let sql = "select * from person";
    connection.query(sql, (error, result) => { 
        
        if (error) { 
        
            console.log('jsSelect出错,出错信息:');
            console.log(error);
        } else { 
        
            console.log('jsSelect 执行成功:');
            console.log(result);
        }
    })

    console.log('***** jsSelect 执行结束 *****');
}

function jsInsert() { 
        
    console.log('***** jsInsert 执行插入 *****');

    let sql = "insert into person values(?,?,?)";
    let params = [5, 'js路人甲', '20'];

    // sql 语句 填充占位符参数(省略) 回调函数
    connection.query(sql, params, (error, result) => { 
        
        if (error) { 
        
            console.log('INSERT sql语句执行不成功,错误原因:');
            console.log(error);
        } else { 
        
            console.log("jsInsert 执行成功");
            console.log(result);
        }
    });

    console.log('***** jsInsert 执行结束 *****');
}

function jsUpdate() { 
        
    console.log('***** jsUpdate 执行修改 *****');

    let sql = "update person set name=? where name=?";
    let params = ["js路人乙", "js路人甲"];
    // let sql = "update person set name='js路人乙' where name='js路人甲'";
    
    connection.query(sql, params, (error, result) => { 
        
        if (error) { 
        
            console.log('jsUpdate sql语句执行不成功,错误原因:');
            console.log(error);
        } else { 
        
            console.log("jsUpdate 执行成功");
            console.log(result);
        }
    });

    console.log('***** jsUpdate 执行结束 *****');
}

jsInsert();
jsUpdate();
jsSelect();

// 关闭数据库连接
connection.end();

// 强制关闭 不推荐使用
// connection.destroy();

运行代码:

node test

创建连接

  • 引入mysql 模块
  • 创建数据库连接对象
    • 连接对象的参数请按照自己的需求写
  • 创建连接
//引入mysql 模块
const mysql = require('mysql');

// 创建数据库连接对象
const connection = mysql.createConnection({ 
        
    host: 'localhost',              // 主机
    port: '3306',                   // 端口号 
    user: 'root',                   // 用户名
    password: '',                   // 密码
    database: 'tmp_database'        // 数据库名
});

// 创建连接
connection.connect((error) => { 
        
    if (error) { 
        
        console.log('连接出错,出错信息:');
        console.log(error);
    } else { 
        
        console.log('error为null 连接成功');
    }
});

执行SQL

参数1:sql语句

参数2:回调函数

  • 如果是select result 是select的查询结果
  • 如果是insert result 是执行状态的对象字符串
  • 如果是updata result 是执行状态的对象字符串
    let sql = "select * from person";
    connection.query(sql, (error, result) => { 
        
        if (error) { 
        
            console.log('jsSelect出错,出错信息:');
            console.log(error);
        } else { 
        
            console.log('jsSelect 执行成功:');
            console.log(result);
        }
    })

参数1:sql语句

参数2:占位符数据(通常是一个数组)

参数3:回调函数

    let sql = "insert into person values(?,?,?)";
    let params = [5, 'js路人甲', '20'];

    connection.query(sql, params, (error, result) => { 
        
        if (error) { 
        
            console.log('INSERT sql语句执行不成功,错误原因:');
            console.log(error);
        } else { 
        
            console.log("jsInsert 执行成功");
            console.log(result);
        }
    });

关闭连接

// 关闭数据库连接
connection.end();

// 强制关闭
// 未执行完sql命令也会关闭,不推荐使用
// connection.destroy();



参考资料:JavaScript Node.js环境连接MySQL

END

标签: express连接器mb

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台