java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > mybatis一个标签执行多个sql语句

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

作者:想养一只!

这篇文章主要介绍了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

总结

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

您可能感兴趣的文章:
阅读全文