(Node) JavaScript连接MySQL

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值