ORM
ORM,像操作对象一样操作数据库
入门
- 打开文档https://sequelize.org/,找到Get Started
CRM学习
yarn add sequelize (安装包)
- yarn add —dev types/sequelize(类型提示)
安装sequelize
进入mysql并创建一个数据库
docker exec -it mysql bash
mysql -u -root -p
create database hasson;
然后就创建成功了
抄文档的代码 然后改
test.js
const { Sequelize, Model, DataTypes } = require('sequelize');const sequelize = new Sequelize('database', 'username', 'password', {dialect: 'mysql'})
然后将我们的数据库信息写进去
const { Sequelize, Model, DataTypes } = require('sequelize');const sequelize = new Sequelize('hasson', 'root', '123456', {dialect: 'mysql'})// 创建User模型class User extends Model { }// 初始化User// sequelize去初始化它。 modelNmae 表的名字User.init({username: DataTypes.STRING,birthday: DataTypes.DATE}, { sequelize, modelName: 'user' });// 同步到数据库// sync 同步 把上面创建的user对象,同步到数据库里面sequelize.sync()// 然后在user里面创建一条记录.then(() => User.create({username: 'janedoe',birthday: new Date(1980, 6, 20)}))// 创建成功后,把这个记录打印出来.then(jane => {console.log(jane.toJSON());});
运行该文件:node test.js
报错:需要安装mysql2这个包
yarn add mysql2
安装mysql2完成后,再次运行node test.js
成功。因为是用的新版本的docker desktop。所以是有默认的host的。
如果要修改host,就在连接数据库的时候加上host:
const sequelize = new Sequelize('hasson', 'root', '123456', {dialect: 'mysql',host:'***.***.**.***'})
到数据库确认是否创建成功
docker exec -it mysql1 bash
mysql -u -root -p
show databases;
use hasson;
show tables;
describe users;
我们创建的是user,但是数据库的是users,应该是sequelize封装了,加了s。
如何查询数据库
文档:https://sequelize.org/v5/manual/querying.html
写个例子 test2.js
const { json } = require('sequelize');const { Sequelize, Model, DataTypes } = require('sequelize');const sequelize = new Sequelize('hasson', 'root', '123456', {dialect: 'mysql'// host:'***.***.**.***'})// 创建User模型class User extends Model { }// 初始化User// sequelize去初始化它。 modelNmae 表的名字User.init({username: DataTypes.STRING,birthday: DataTypes.DATE}, { sequelize, modelName: 'user' });async function run() {const users = await User.findAll();console.log(JSON.stringify(users))sequelize.close() //关闭数据库}run()
node test2.js
删除数据库
代码:
User.destroy({where: {id: 1}})
const { Sequelize, Model, DataTypes } = require('sequelize');const sequelize = new Sequelize('hasson', 'root', '123456', {dialect: 'mysql'// host:'***.***.**.***'})// 创建User模型class User extends Model { }// 初始化User// sequelize去初始化它。 modelNmae 表的名字User.init({username: DataTypes.STRING,birthday: DataTypes.DATE}, { sequelize, modelName: 'user' });async function run() {User.destroy({where: {id: 1}})const users = await User.findAll();console.log(JSON.stringify(users))sequelize.close()}run()
run:
之前是有数据的,现在数据库变空了
总结
所以使用sequelize的话,是不需要再写查询语句了,需要什么就去抄文档。
然后再修修改改,后面的事情sequelize会处理好。
SQL学习&测验
学习:https://www.w3school.com.cn/sql/index.asp
测验:https://www.w3school.com.cn/quiz/quiz.asp?quiz=sql

