ibatis 执行多条sql问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ibatis 执行多条sql问题相关的知识,希望对你有一定的参考价值。

我们用ibatis 框架,每次调用数据库都是通过dao层调用sqlmap配置文件,来获取结果。现在有个业务流程就是获取流水号,获取时候要从数据库读取流水号id,然后紧接着把这个值再加1,以保证每次拿到的都是不同的id号。两条sql分别为:
select seqno from table where .. for update ;
update table set seqno = seqno+1
问题就是,sqlmap配置文件中,每次仅能执行一条sql语句,上面2条sql无法一起执行。
要么就是从dao层分两次调用,但是上面两条sql一定要保证数据库的sessionid一致,我就怕出现第一次调用完查询,等第二次调用时候sesssion就变了,这样就会死锁谁都无法读取了。这种问题该怎么解决?

楼上说的对,先update后select ,但是ibatis中<select></select>之间不能嵌套update语句,因此你只能分两次调用了 但是可以使用批处理 参考技术A 先update,再select,可以用批处理操作

以上是关于ibatis 执行多条sql问题的主要内容,如果未能解决你的问题,请参考以下文章

ibatis 执行sql的事务控制问题

ibatis批处理和把批量数据拼成一条sql语句,哪个效能更好?

不需要配置log4j , 调试打印ibatis执行的sql语句和参数

如何生成ibatis 动态sql

activiti5 为啥选择 ibatis

使用ibatis时 sql中 in 的参数赋值(转)