Atitit mybatis分支选择以及与sql变量交互问题

attilax 2019-08-12 09:31:59
Atitit mybatis分支选择以及与sql变量交互问题


Mybatis的一个mapper文件 工单表.xml

有个select内容如下


<select id="隐患事件流程" parameterType="Map" resultType="Map">
insert 工单表(#{工单信息});
set @当前工单id = LAST_INSERT_ID();
insert 操作日志(#{操作员}, #{事件});
select 是否自动派单, 维保公司 into @是否自动派单, @维保公司 from 物业配置表 limit 1;
/* select @是否自动派单n,@维保公司; */
if (@是否自动派单)
update 工单表 set 维保公司=@维保公司 where id = @当前工单id
end if;
</select>


但是这个有个问题,,if语句报错。。拿到存储过程里面是可以的,单独写sql在navicate查询也是不能使用if语句的,怀疑是Mysql的bug。。。

那么只好使用mybatis的if标签来试试了,,但是貌似需要绑定sql变量到mybbatis变量。。如何绑定???我需要获取 sql 变量@是否自动派单n,@维保公司,或者上一条sql返回字段值也可,根据这个来判断
bind标签的两个属性都是不选项,name为绑定到上下文的变量名,value为OGNL表达式,
bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。比如:

有谁知道如何使用if标签来写这个判断吗??
...全文
209 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
attilax 2019-08-19
  • 打赏
  • 举报
回复
引用 3 楼 getdate 的回复:
[quote=引用 2 楼 attilax 的回复:] [quote=引用 1 楼 getdate 的回复:] [quote=引用 楼主 attilax 的回复:] Atitit mybatis分支选择以及与sql变量交互问题 Mybatis的一个mapper文件 工单表.xml 有个select内容如下 ??
你这是伪代码是么?[/quote] 晕,真实代码呀,不是伪代码[/quote] 你是在学习还是在做项目? 谁教你把代码都写成汉字的啊?定义字段也是汉字的?也是服了. [/quote] 可读性优先原则啊
getdate 2019-08-15
  • 打赏
  • 举报
回复
引用 2 楼 attilax 的回复:
[quote=引用 1 楼 getdate 的回复:] [quote=引用 楼主 attilax 的回复:] Atitit mybatis分支选择以及与sql变量交互问题 Mybatis的一个mapper文件 工单表.xml 有个select内容如下 ??
你这是伪代码是么?[/quote] 晕,真实代码呀,不是伪代码[/quote] 你是在学习还是在做项目? 谁教你把代码都写成汉字的啊?定义字段也是汉字的?也是服了.
attilax 2019-08-15
  • 打赏
  • 举报
回复
引用 1 楼 getdate 的回复:
[quote=引用 楼主 attilax 的回复:] Atitit mybatis分支选择以及与sql变量交互问题 Mybatis的一个mapper文件 工单表.xml 有个select内容如下 ??
你这是伪代码是么?[/quote] 晕,真实代码呀,不是伪代码
getdate 2019-08-12
  • 打赏
  • 举报
回复
引用 楼主 attilax 的回复:
Atitit mybatis分支选择以及与sql变量交互问题 Mybatis的一个mapper文件 工单表.xml 有个select内容如下 <select id="隐患事件流程" parameterType="Map" resultType="Map"> insert 工单表(#{工单信息}); set @当前工单id = LAST_INSERT_ID(); insert 操作日志(#{操作员}, #{事件}); select 是否自动派单, 维保公司 into @是否自动派单, @维保公司 from 物业配置表 limit 1; /* select @是否自动派单n,@维保公司; */ if (@是否自动派单) update 工单表 set 维保公司=@维保公司 where id = @当前工单id end if; </select> 但是这个有个问题,,if语句报错。。拿到存储过程里面是可以的,单独写sql在navicate查询也是不能使用if语句的,怀疑是Mysql的bug。。。 那么只好使用mybatis的if标签来试试了,,但是貌似需要绑定sql变量到mybbatis变量。。如何绑定???我需要获取 sql 变量@是否自动派单n,@维保公司,或者上一条sql返回字段值也可,根据这个来判断 bind标签的两个属性都是不选项,name为绑定到上下文的变量名,value为OGNL表达式, bind 元素可以从 OGNL 表达式中创建一个变量并将其绑定到上下文。比如: 有谁知道如何使用if标签来写这个判断吗??
你这是伪代码是么?

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧