文章目录
- 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