HTML转JSON后如何将数据推送至MySQL存储过程(已尝试Postman)
将JSON数据推送至MySQL存储过程
1. 编写支持JSON解析的存储过程
MySQL原生支持JSON类型与JSON处理函数,你可以直接在存储过程中传入JSON参数,解析后执行插入/更新操作。以下是处理单用户数据的示例:
DELIMITER // CREATE PROCEDURE InsertUserFromJSON(IN user_json JSON) BEGIN -- 提取JSON中的字段值 SET @name = JSON_UNQUOTE(JSON_EXTRACT(user_json, '$.name')); SET @email = JSON_UNQUOTE(JSON_EXTRACT(user_json, '$.email')); SET @age = JSON_EXTRACT(user_json, '$.age'); -- 插入到用户表(假设表结构为users(name, email, age)) INSERT INTO users (name, email, age) VALUES (@name, @email, @age); END // DELIMITER ;
如果是批量用户的JSON数组,可使用JSON_TABLE批量解析:
DELIMITER // CREATE PROCEDURE InsertBatchUsersFromJSON(IN users_json JSON) BEGIN INSERT INTO users (name, email, age) SELECT name, email, age FROM JSON_TABLE( users_json, '$[*]' COLUMNS( name VARCHAR(50) PATH '$.name', email VARCHAR(100) PATH '$.email', age INT PATH '$.age' ) ) AS user_data; END // DELIMITER ;
2. 调用存储过程
通过SQL客户端直接执行调用语句:
-- 单用户数据 CALL InsertUserFromJSON('{"name":"张三","email":"zhangsan@example.com","age":25}'); -- 批量用户数据 CALL InsertBatchUsersFromJSON('[{"name":"张三","email":"zhangsan@example.com","age":25},{"name":"李四","email":"lisi@example.com","age":30}]');
通过Postman将JSON数据传入MySQL
Postman无法直接连接MySQL,需要通过后端接口作为中间层转发请求,以下是基于Node.js + Express的实现示例:
1. 搭建后端接口
先安装依赖:
npm install express mysql2
编写接口代码(app.js):
const express = require('express'); const mysql = require('mysql2/promise'); const app = express(); app.use(express.json()); // MySQL连接配置 const dbConfig = { host: 'localhost', user: '你的数据库用户名', password: '你的数据库密码', database: '你的数据库名' }; // 接收JSON并调用存储过程的接口 app.post('/submit-user', async (req, res) => { try { const conn = await mysql.createConnection(dbConfig); await conn.execute('CALL InsertUserFromJSON(?)', [JSON.stringify(req.body)]); await conn.end(); res.status(200).send('数据插入成功'); } catch (err) { res.status(500).send('插入失败:' + err.message); } }); app.listen(3000, () => { console.log('服务器运行在http://localhost:3000'); });
2. 使用Postman发送请求
- 选择
POST方法,输入接口地址:http://localhost:3000/submit-user - 切换到
Body标签,选择raw,格式下拉框选JSON - 输入用户JSON数据:
{ "name": "张三", "email": "zhangsan@example.com", "age": 25 } - 点击
Send,即可将JSON数据通过接口传入MySQL
内容的提问来源于stack exchange,提问作者SUMIT KUMAR
相关产品推荐
相关产品推荐

