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