自制脚本,将 json 格式中的数据自动写入数据库表中

自制脚本,将 json 格式中的数据写入数据库表中

图书系统案例的继续优化

由于 直接写入数据到 json 格式中,每次对数据进行操作都要重新去写文件,当数据量很大时,性能开销会很大,也不方便,所以运用到了数据库。

1. 打开 wamp 启动 mySQL 服务

2. 启用 navicat

  1. 连接数据库,起名,密码先不用在意,点击确定。
    在这里插入图片描述

  2. 右键,新建数据库。
    在这里插入图片描述

  3. 如图。
    在这里插入图片描述

  4. 查询,新建查询。
    在这里插入图片描述

  5. 负责脚本制作的代码(下面的3. 代码是脚本)。

3. 代码

目录结构
在这里插入图片描述

创建 initsql.js

① 引入模块

② 读取data.json数据
在这里插入图片描述

③ 将Buffer数据转换为对象

④ 创建数组用于存放对象渲染后的数据

⑤ 遍历对象,渲染,存入数组

⑥ 将内存的数据写入文件,注意将数组arr拼接为字符串

// 自制脚本,将data.json中的数据写入数据库表中
// ① 引入模块
const path = require('path');
const fs = require('fs');

// ② 读取data.json数据。 join()目的是避免在不同环境运行时造成出错。
fs.readFile(path.join(__dirname, '../', 'data.json'), (err, content)=>{
    // ③ 将Buffer数据转换为对象
    if(err)return;
    let list = JSON.parse(content);
    // ④ 创建数组用于存放对象渲染后的数据
    let arr = [];
    // ⑤ 遍历对象,渲染,存入数组。 注意渲染的符号是 ``, 不是 ''。
    list.forEach((item)=>{
        let sql = `insert into book(name,author,category,description) values ('${item.name}','${item.author}','${item.category}','${item.desc}');`;
        arr.push(sql);
    });
    // ⑥ 将内存的数据写入文件,注意将数组arr拼接为字符串
    fs.writeFile(path.join(__dirname, 'data.sql'), arr.join(''), 'utf8', (err)=>{
        console.log('init data finished!');
    });
});
  1. 执行脚本,产生 data.sql 文件
    在这里插入图片描述
    data.sql 文件内容
    在这里插入图片描述
  2. 复制到查询表中,运行
    在这里插入图片描述
  3. 刷新表,成功!
    在这里插入图片描述

版权声明:本文为qq1195339766原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。