本文目录
mybatis的mapper文件中的一个标签是否可以写多条SQL语句?是否存在事物?
这篇博文的由来,朋友面试遇到两个问题?
第一个问题是mybatis的mapper文件中的一个标签是否可以写多条SQL语句?
第二个问题是上述问题如果成立,那么这个标签内是否存在事物?
数据库事物的四大特性
回顾知识:
ACID
原子性、一致性、隔离性、持久性
问题答案
第一问题:mybatis的mapper文件中的一个标签可以写多条SQL语句
第二问题:标签中不存在事物
验证答案
一、创建数据库表
Create Table
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4
二、搭建SpringBoot+Mybatis项目(略)
数据库配置:
默认的数据库连接配置基本上都是如下的:
url: jdbc:mysql://XXX.XXX.XXX.XXX:XXX/XXXX
这样默认是不能实现mybatis的mapper文件中的一个标签可以写多条SQL语句的,会报异常:
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
如果遇到上述异常我们可以通过对数据库连接的URL添加参数,从而实现可以执行多条SQL语句的功能。
url: jdbc:mysql://XXX.XXX.XXX.XXX:XXX/XXXX?allowMultiQueries=true
三、编写MVC三层代码
MyTest.java
package com.staryea.sfdemo.module.entity;
import lombok.Data;
/**
* @author: shaofeer
* <p>
* @qq: 337081267
* <p>
* @CSDN: http://blog.csdn.net/pyfysf
* <p>
* @blog: http://wintp.top
* <p>
* @email: shaofeer@163.com