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

总结

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

相关文章

  • Java接口异步调用

    Java接口异步调用

    这篇文章主要介绍了Java接口异步调用,下面我们来一起学习一下吧
    2019-05-05
  • springboot之端口设置和contextpath的配置方式

    springboot之端口设置和contextpath的配置方式

    这篇文章主要介绍了springboot之端口设置和contextpath的配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • java中&与&&的区别

    java中&与&&的区别

    本文主要介绍了java中&与&&的区别,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • SpringBoot实现单文件上传

    SpringBoot实现单文件上传

    这篇文章主要为大家详细介绍了SpringBoot实现单文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Java NIO实战之聊天室功能详解

    Java NIO实战之聊天室功能详解

    这篇文章主要介绍了Java NIO实战之聊天室功能,结合实例形式详细分析了java NIO聊天室具体的服务端、客户端相关实现方法与操作注意事项,需要的朋友可以参考下
    2019-11-11
  • 如何把spring boot项目部署到tomcat容器中

    如何把spring boot项目部署到tomcat容器中

    本文给大家分享如何把spring boot项目部署到tomcat容器中,本文给大家介绍的非常详细,需要的朋友参考下
    2017-04-04
  • 浅谈Java中向上造型向下造型和接口回调中的问题

    浅谈Java中向上造型向下造型和接口回调中的问题

    这篇文章主要介绍了浅谈Java中向上造型向下造型和接口回调中的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Spring Boot如何监控SQL运行情况?

    Spring Boot如何监控SQL运行情况?

    Druid是Java语言中最好的数据库连接池,下面这篇文章主要给大家介绍了关于Spring Boot如何监控SQL运行情况的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Java中的异常测试框架JUnit使用上手指南

    Java中的异常测试框架JUnit使用上手指南

    这篇文章主要介绍了Java的异常测试框架JUnit使用上手指南,JUnit是Java代码进行单元测试中的常用工具,需要的朋友可以参考下
    2016-03-03
  • Java线程池实现原理详解

    Java线程池实现原理详解

    在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源,在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收,本文将对Java线程池实现原理进行详细介绍,需要的朋友可以参考下
    2023-07-07

最新评论