mybatis中如何实现一个标签执行多个sql语句

 更新时间:2024年04月19日 14:35:01   作者:想养一只!  
这篇文章主要介绍了mybatis中如何实现一个标签执行多个sql语句问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mybatis一个标签执行多个sql语句

在删除标签中想要添加另外三个sql实现主键重新排序的功能,这样一个 delete 标签里面一共是需要执行四个sql语句,测试的时候一直报错说语法有问题,但在数据库中测试sql又是成功的。

问题

其实这个语法是没有问题的,报错提示语法错误的主要原因是因为配置不对,导致这样编写的格式在mybatis中不被承认,所以才会语法错误。

解决

在配置数据源的地方添加 allowMultiQueries=true 即可,表示允许多条sql语句执行(记得在前面使用&隔开)。


mybatis+mysql中一个标签内写两条sql语句报错

    <update id="bindStu">
        update edu_student set user_username=#{user_username} where stu_id = #{stu_id};
        update edu_user set stu_id=#{stu_id} where user_username=#{user_username};
    </update>

报错如下

### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the right
syntax to use near 'update edu_user set stu_id='2' where user_username='111'' at line 2 
### The error may exist in com/yue/mapper/UserMapper.xml ### The error may involve 
defaultParameterMap ### The error occurred while setting parameters ### SQL: update 
edu_student set user_username=? where stu_id = ?; update edu_user set stu_id=? where 
user_username=?; ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near 'update edu_user set stu_id='2' where 
user_username='111'' at line 2 ; bad SQL grammar []; nested exception is 
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL 
syntax; check the manual that corresponds to your MySQL server version for the right 
syntax to use near 'update edu_user set stu_id='2' where user_username='111'' at line 2

经查阅资料后发现

mybatis+mysql时可以一个标签内写多条语句,只不过需要mybatis在连接mysql时在url处加上allowMultiQueries=true

如下,在末尾加上即可:

jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?
useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • IDEA创建Maven一直爆红无法下载的问题解决办法

    IDEA创建Maven一直爆红无法下载的问题解决办法

    这篇文章主要介绍了关于IDEA创建Maven一直爆红无法下载的问题的解决办法,文中图文结合的方式给大家讲解的非常详细,对大家解决办法非常有用,需要的朋友可以参考下
    2024-06-06
  • Java中的Sentinel规则持久化详解

    Java中的Sentinel规则持久化详解

    这篇文章主要介绍了Java中的Sentinel规则持久化详解,将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效,需要的朋友可以参考下
    2023-09-09
  • 详解mybatis流式查询与分页插件

    详解mybatis流式查询与分页插件

    这篇文章主要介绍了mybatis流式查询与分页插件,本文通过实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • Java中token的存储和获取实例代码

    Java中token的存储和获取实例代码

    关于java获取微信Token验证的问题相信很多人都遇见过,尤其是对刚接触微信开发的人来说确实有点棘手,下面这篇文章主要给大家介绍了关于Java中token存储和获取的相关资料,需要的朋友可以参考下
    2022-08-08
  • 在Java中FreeMarker 模板来定义字符串模板

    在Java中FreeMarker 模板来定义字符串模板

    这篇文章主要介绍了在Java中FreeMarker 模板来定义字符串模板,文章基于Java的相关资料展开详细内容,需要的小伙伴可以参考一下
    2022-04-04
  • 解读@Scheduled任务调度/定时任务非分布式

    解读@Scheduled任务调度/定时任务非分布式

    这篇文章主要介绍了解读@Scheduled任务调度/定时任务非分布式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java别说取余(%)运算简单你真的会吗

    Java别说取余(%)运算简单你真的会吗

    这篇文章主要介绍了Java别说取余(%)运算简单你真的会吗,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Java Servlet中Response对象的使用方法

    Java Servlet中Response对象的使用方法

    本文介绍了Java Servlet中Response对象的使用方法,包括设置响应头、设置响应编码、向客户端发送数据、重定向等操作,同时介绍了常用的响应状态码和响应类型,帮助读者更好地理解和掌握Servlet中Response对象的用法
    2023-05-05
  • this关键字详解

    this关键字详解

    这篇文章主要介绍了this关键字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java并发编程预防死锁过程详解

    Java并发编程预防死锁过程详解

    这篇文章主要介绍了Java并发编程预防死锁过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论