nodejs mysql save_nodejs实现数据持久化之——MySQL

本文介绍了MySQL的安装步骤,包括在官网下载、配置环境变量和使用MySQLWorkbench作为可视化工具。此外,讲解了如何通过npm安装mysql2库进行数据库连接和操作,以及使用Sequelize简化数据库交互,提供了示例代码展示创建表、插入数据、查询和更新等操作。
摘要由CSDN通过智能技术生成

首先,来说说数据持久化的理解,服务端数据持久化技术就是通过服务连接到数据库,将大量的数据通过SQL语句或其他指令存入到数据库,并可通过语句增删改查数据库。

MySQL

MySQL的安装

1.在官网中选择MySQL Community Server 进行下载,下载完后运行安装包,配置用户名和密码。

2.打开 finder(访达),查看/usr/local/mysql/bin 目录下是否有 mysql;

3.终端打开指定位置:cd /usr/local/mysql/bin

4.接着输⼊入 vim ~/.bash_profile,然后在此⽂文件中添加 mysql 的 bin ⽬目录,添加这句话:

PATH:$PATH:/usr/local/mysql/bin

复制代码

并退出vim输入模式;

5.接着输⼊ source ~/.bash_profile,回车,以使刚才的配置⽣生效。

mysql 的安装和配置已经完成!

接着需要安装数据库可视化工具MySQL Workbench,下载地址同上,找到workbench下载并运行安装包,注意登录时用户名和密码与数据库设置一致。

连接MySQL数据库

安装mysql2 : npm i mysql2 -S

通过如下的代码连接,并通过execute方法执行对应语句操作数据库:

const mysql = require('mysql2/promise');

// 连接配置

const cfg = {

host: "localhost",

user: "root", // 你的用户名

password: "password", // 你的密码

database: "database" // 数据库名称

}

// 建立连接

const connection = await mysql.createConnection(cfg);

// 创建test表

let ret = await connection.execute(`

CREATE TABLE IF NOT EXISTS test(

id INT NOT NULL AUTO_INCREMENT,

message VARCHAR(45) NULL,

PRIMARY KEY (id))

`)

console.log('create', ret);

// 连接关闭

connection.end();

复制代码

Sequelize--更便捷的数据库操作

利用Sequelize这个中间件可以不用和sql语句打交道,更便捷的实现数据库操作,其可以支持多种数据库。

安装:npm i sequelize mysql2 -S

基本使用如下:

(async () => {

const Sequelize = require("sequelize");

// 连接数据库

const sequelize = new Sequelize('database', 'root', "123456", {

host: "localhost",

dialect: "mysql"

});

// 定义模型

const Fruit = sequelize.define('Fruit', {

name: { type: Sequelize.STRING(20), allowNull: false },

price: { type: Sequelize.FLOAT, allowNull: false },

stock: {

type: Sequelize.INTEGER, defaultValue: 0

}

})

let ret = await Fruit.sync();

console.log('sync', ret)

// 增

ret = await Fruit.create({

name: "香蕉",

price: 3.5

})

console.log('create', ret)

// 查

ret = await Fruit.findAll();

console.log('find', JSON.stringify(ret));

// 改

await Fruit.update({ price: 5 }, { where: { name: "香蕉" } })

// 条件查询

const Op = Sequelize.Op;

ret = await Fruit.findAll({

where: { price: { [Op.lt]: 5, [Op.gt]: 2 } }

})

console.log(ret)

})()

复制代码

由此可见所有操作都是传入一个配置对象,可以说是相当方便了,想了解更多sequelize的操作可以查看API文档:www.nodeclass.com/api/sequeli…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值