mybatis 存储过程 tmp_count_mysql存储过程(一)-navicat与mybatis
问题描述
一条语句实现向两个表中添加数据
前段时间遇到需求,向一个表中添加数据,获取新增主键值。再向另一个表添加数据,其中一个字段为前一个表的主键值。并返回第二次添加的表的自增主键值。上网查到的一个方法为使用存储过程,便按照这个思路试着实现一下,现将过程回忆记录下来。
项目环境
SSM框架项目+Navicat管理MySQL数据库
解决问题
一、Navicat for MySQL创建存储过程
1.新建函数→选择“过程”
2.添加参数
模式: IN:输入参数 OUT:输出参数 INOUT:既作为输入参数,也作为输出参数
3.写存储过程里面要执行的内容
CREATE DEFINER=`root`@`%` PROCEDURE `InsertNewConsultation`(IN `user_id` int,IN `doc_id` int,IN `now_time` datetime,IN `disease_id` int,IN `patient_id` int,IN `patient_speak_text` text,OUT `patient_speak_id` int)BEGIN--声明变量DECLARE consultation_id INT; insert into consultation_basic (user_id,last_reply_text,last_reply_time,consultation_status,doctor_unread_number,disease_id,patient_unread_number,patient_id,doc_id) values (user_id,patient_speak_text,now_time,1,1,disease_id,0,patient_id,doc_id); SET consultation_id = @@identity; insert into patient_speak (patient_speak_text,patient_user_id,patient_speak_time,isread,consultation_id) values (patient_speak_text,user_id,now_time,0,consultation_id); SET patient_speak_id = @@identity;END
4.保存即可
二、MyBatis调用存储过程
{ CALL InsertNewConsultation( #{user_id,jdbcType=INTEGER,mode=IN}, #{doc_id,jdbcType=INTEGER,mode=IN}, #{last_reply_time,jdbcType=TIMESTAMP,mode=IN}, #{disease_type_id,jdbcType=INTEGER,mode=IN}, #{patient_id,jdbcType=INTEGER,mode=IN}, #{patient_speak_text,jdbcType=VARCHAR,mode=IN}, #{patient_speak_id,jdbcType=INTEGER,mode=OUT} ) }
注:调用存储过程时,注意参数顺序不能错。
原文链接:https://blog.csdn.net/qq_28869233/article/details/88849986
更多信息请关注@软件老王,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术见解和生活故事。
mybatis 存储过程 tmp_count_mysql存储过程(一)-navicat与mybatis相关推荐
- mybatis调用oracle存储过程
有输入与输出参数的存储过程 oracle存储过程部分代码: create or replace procedure PT_copy_Shipment_One_Data( oldShipmentId i ...
- mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析
mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析 参考文章: (1)mybatis 调用 oracle 存储过程 select in ...
- spring+springMvc+mybatis 调用oracle 存储过程
最近在项目中遇到在mybatis中调用oracle存储过程的问题,网上各种查询,最终解决了问题,在我们项目中我只需要oracle 的存储过程返回一个字符串用来存入数据库作为表数据的主键, 接下来整理代 ...
- mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)
一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...
- mybatis mysql 调用存储过程 多个返回值_被Mybatis坑惨了
关注米兜Java并置顶,一起涨姿势- 关注米兜 Spring 2020 热点推荐 1 抛去try {...} catch {...} finally {...},让代码更轻便 2 无所不能的J ...
- Mybatis调用PostgreSQL存储过程实现数组入参传递
前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: CREATE OR ...
- MyBatis如何调用存储过程
本文按自底向上的顺序分享MyBatis如何调用存储过程 1. xxxMapper.xml <select id="storeProcedure" statementType= ...
- springboot+mybatis调用oracle存储过程
1 存储过程参数为VARCHAR 代码逻辑:controller层定义实体类对象entity,并entity.set给存储过程的输入参数赋值,把赋值后的实体类通过service层传到dao层,然后通过 ...
- oracle存储过程可以回退吗,Navicat 运行 Oracle 存储过程示例
navicat 存储过程界面功能 点击运行时,会弹出窗口填入输入参数. 使用Navicat创建存储过程 在函数位置,右键新建函数, OUT参数没有默认值,写了也没用. 软件自动生成存储过程框架,然后人 ...
最新文章
- ros 消息队列与缓冲区_[ROS] [笔记(1)] 一个最简单的例子:Hello Robot(消息、发布者与订阅者)...
- hdu-1195--Open the Lock(BFS)
- CodeForces - 1363E Tree Shuffling(树上贪心)
- Struts 2的OGNL表达式
- 计算机网络----wireshark抓包
- Servelt 中文乱码
- 【数字逻辑设计】Logisim构建三种多路选择器
- freeredius3.0 mysql_EDIUS非线性编辑系统价格,4k视频编辑系统
- 开源GIS(五)——openlayers中interaction的select、draw与modify
- 【EMV L2】终端风险管理(Terminal Risk Management)
- labview 一个tdms文件 两个线程同时往里写_LabVIEW 状态图(Statechart)介绍
- 我在飞机上,飞机在哪里?浅谈飞行模式与GPS定位
- 如何查看电脑本地IP+端口号
- 实验项目1 置换密码
- Navicat:Access violation at address xxxxxxxxx in module 'navicat.exe'.Read of address xxxxxx
- 新人略谈关于积分墙盈利模式的思考
- Texture tiling
- 脱口而出的 “ 感谢的语言 ”
- Ty p e O R M框架
- 中小企业掀起“减碳潮”,“上云”提高产品绿色竞争力