koa2开发后台服务 - (4) sequelize - CRUD增删改查

介绍sequelize常用的crud方法:

新增

  • create({创建的属性:属性的值})

更新

  • update({需要更新的属性名称:需要更新的值},{where:{查询条件:值})

删除

  • destroy({where:{查询条件:值}})

查询

  • findOne({配置参数})
  • findAll({配置参数})
  • findAndCountAll({配置参数})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// {配置参数}
{
attributes:['field'], // 自定义返回的列
where:{
id:1 // 指定查询条件
},
where:{
username:{
[Op.like]:"%zhang%" // 模糊查询
}
},
limit:10, // 查询多少条
offset:10, // 跳过多少开始
order:[
["id","desc"] // 排序规则
],
include:[ // 联表查询
{
model:Blog,
attributes:['filed1'],
where:{
id:1
}
}
],
raw:true // 对sequelize数据格式处理,一般用于数据只显示的情况
}

新增

  • 对创建的模型调用create方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const createResult = ModalA.create({
file1:value1,
file2:value2,
file3:value3,
})
// createResult.dataValues 可以获取到执行sql的数据结果
}catch(error){
console.error(error)
}
})()

查询

  • 对创建的模型调用findOne方法/findAll方法

查询一条记录 findOne

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const queryResult = ModalA.findOne({
where:{
queryKey:queryValue,
username: {
[Op.like]: "%zh%" // const Op = Sequelize.Op; 模糊查询
}
},

raw:true // 就可以直接过去到返回的对象
})
// queryResult 可以获取到执行sql的数据结果
}catch(error){
console.error(error)
}
})()

查询特定的列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const queryResult = ModalA.findOne({
attributes:['column1','column2',...], // 需要返回的列
where:{
queryKey:queryValue
},
raw:true // 就可以直接过去到返回的对象
})
// queryResult 可以获取到执行sql的数据结果
}catch(error){
console.error(error)
}
})()

查询一个列表 - findAll

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const queryResults = ModalA.findAll({
attributes:['column1','column2',...], // 需要返回的列
limit: 10, // 查询多少条
offset: 0, // 查询开始位置
orderBy:[
["id","desc"] // 可以指定排序规则
],
raw:true // 就可以直接过去到返回的数组
})
console.log(queryResults)
}catch(error){
console.error(error)
}
})()

查询带总数的列表 - findAndCountAll

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const queryResults = ModalA.findAndCountAll({
attributes:['column1','column2',...], // 需要返回的列
limit: 10, // 查询多少条
offset: 0, // 查询开始位置
orderBy:[
["id","desc"] // 可以指定排序规则
],
raw:true // 就可以直接过去到返回的数组
})
console.log('queryResults',
queryResults.count, // 获取列表总数
queryResults.rows) // 列表的list数据
}catch(error){
console.error(error)
}
})()

更新

update - 返回的是发生变更的数据条数,所以大于零就说明操作成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const updateResults = ModalA.update({
attributeName:attributeValue
},{
where:{
// 查询过滤参数
}
})
console.log(updateResults)
}catch(error){
console.error(error)
}
})()

删除

destroy - 返回的是发生变更的数据条数,所以大于零就说明操作成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 引入创建的模型
const ModalA = require('.db/modal')

// 新增数据
!(async function(){
try{
const updateResults = ModalA.update({
attributeName:attributeValue
},{
where:{
// 查询过滤参数
}
})
console.log(updateResults)
}catch(error){
console.error(error)
}
})()
初到贵宝地,有钱的给个钱场,没钱的挤一挤给个钱场