UserService service;
@Autowired
public void setService(UserService service) {
this.service = service;
}
@Override
public void add(User user) {
System.out.println(mapper);
Thread thread = new Thread(new MyRunnable(mapper, user));
thread.start();
}
class MyRunnable implements Runnable {
UserMapper mapper;
User user;
public MyRunnable(UserMapper mapper, User user) {
this.mapper = mapper;
this.user = user;
System.out.println(mapper);
System.out.println(user);
}
@Override
public void run() {
mapper.insert(user);
}
}
@Test
public void test1() {
User u1 = new User(1L,"A");
service.add(u1);
}
控制台输出
数据库确没数据,又不报错。
程序结束的太早了,数据库插入式需要时间的,不信你最后sleep下
Junit进行测试时默认是开启事务回滚的(防止写入测试数据)
因此查询语句正常运行,更新语句虽然运行正常但是最后不会向数据库写数据
如果确实有必要写入数据,可以手动关闭事务回滚
在test方法上添加@Rollback(false)就可以了