# DBAPI如何向数据库插入多条数据
# 业务背景
- 假设我们在mysql有如下一张学生信息表,需要通过接口插入数据,且可以插入多条,应该如何实现呢?
# 创建API
- 在基本信息标签页,
Content-Type
一定要选择application/json
,这样API才能通过http body传递参数,然后请求参数示例填写json参数如下
{
"students": [{
"name": "林志玲",
"age": 20
}, {
"name": "蔡依林",
"age": 30
}
]
}
- 执行器标签填写SQL如下,使用类似mybatis的动态SQL语法,同时我们开启事务
insert into student(name,age) VALUES
<foreach open="" close="" collection="students" separator="," item="item" index="index">
(#{item.name}, #{item.age})
</foreach>
- 保存API并发布上线
# 请求测试
- 在接口请求测试页面请求测试。可以看到接口访问成功,返回结果显示插入了2行数据
- 我们来到数据库验证发现确实多了2条数据
# 原理
- 那这段动态sql的逻辑是怎么样的呢?
- 我们编辑API,进入SQL调试页面,在右侧输入我们刚才请求的参数,点击解析sql按钮,发现标签语法被解析出来的sql就是mysql批量插入的sql语句