问题描述:
- services代码如下,运行后第一条insert语句(小明)插入表中,第二条insert(小王)未插入表中
@Service
public class UserInfoServiceImpl implements IUserInfoService {
@Override
@Transactional
public List<User> listUser() {
userDao.insert(new User(100001,"小明","123","123321123"));
int a = 1/0; //测试事物管理
userDao.insert(new User(400001,"小王","123","123321123"));
return userDao.listUserInfo();
}
}
问题背景:
1. spring-boot + mybatis + jdk8
2. 数据库mysql,表引擎为:InnoDB,项目以普通用户连接数据库
3. 事务管理已开启
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@SpringBootApplication
public class SmdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SmdemoApplication.class, args);
}
}
4. services类有注解,对应方法为public,方法内容未捕获异常,该方法由外部类调用
@Service
public class UserInfoServiceImpl implements IUserInfoService {
@Resource
private UserMapper userDao;
@Override
@Transactional(rollbackFor=Exception.class)
public List<User> listUser() {
userDao.insert(new User(100001,"小明","123","123321123"));
int a = 1/0;
userDao.insert(new User(400001,"小明","123","123321123"));
return userDao.listUserInfo();
}
}
在网上找到的所有方法都试过了,均无效,还请高手赐教。