事务控制
控制事务也就是但发生异常时,撤销原来所做的动作,这样可以保证数据的完整性。
- 要启用事务管理,在入口类上加一个 @EnableTransactionManagement
- 需要事务的方法上加上 @Transactional
演示
入口类,也就是启动 spring boot 的类
@SpringBootApplication
@EnableTransactionManagement // 启用 事务 管理
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
删除操作
@Repository // 专门加在数据访问层上, 作用: @Service @Controller @Component
public class StudentDao {
@Autowired
private JdbcTemplate jdbc;
public void insert(String name, Date birthday, String sex) {
String sql = "insert into student(sid, sname, birthday, sex) values(null,?,?,?)";
jdbc.update(sql, name, birthday, sex);
}
}
事务管理,如果插入发生异常,就回滚
@Controller
public class StudentController {
@Autowired
private StudentDao studentDao;
@RequestMapping("/insert")
@ResponseBody
//事务管理,如果插入发生异常,就回滚
@Transactional
public void insert(String name, @DateTimeFormat(pattern = "yyyy-MM-dd") Date birthday, String sex) {
studentDao.insert(name, birthday, sex);
}
}
结果
原来的表
当浏览器上输入 http://localhost:8080///insert?name=小花&birthday=1996-09-10&sex=男 时
面向切面编程
要启用面向切面编程,在入口类上加一个 @EnableAspectJAutoProxy ,和上面的事物控制一样的用法。
(如果对切面编程不了解,可以参考:https://blog.csdn.net/grey_mouse/article/details/87740633)