1. 环境搭建
1.1先集成Spring和JPA
项目搭建、
导包
创建三层架构
Spring的配置文件(jdbc.properties-->datasource-->EntityManagerFactory-->transcational-->配置扫描三层组件)
注意:在注入对象的时候必须面向接口注入对象,不能通过面向实现类的方式注入对象(面向接口编程)
事务的传播机制:A方法有事务,B方法调用A方法,B方法也具有事务的特性
7种事务传播机制:
REQUIRED(默认):支持使用当前事务,如果当前事务不存在,创建一个新事务。
SUPPORTS:支持使用当前事务,如果当前事务不存在,则不使用事务。
MANDATORY:中文翻译为强制,支持使用当前事务,如果当前事务不存在,则抛出Exception。
REQUIRES_NEW:创建一个新事务,如果当前事务存在,把当前事务挂起。
NOT_SUPPORTED:无事务执行,如果当前事务存在,把当前事务挂起。
NEVER:无事务执行,如果当前有事务则抛出Exception。
NESTED:嵌套事务,如果当前事务存在,那么在嵌套的事务中执行。如果当前事务不存在,则表现跟REQUIRED一样。
重点讲一下requires_new和nested的区别,requires_new完全是一个新事务,nested是一个外部事务的子事务,是外部事务的一部分,如果嵌套事务发生异常回滚,则只回滚嵌套事务部分。而外部事务的提交和回滚均会提交/回滚嵌套事务。requires这是两个事务互不干扰,如果内部事务发生异常且异常抛到了外部调用方法,那么两个事务都回滚,如果内部事务提交成功,外部事务提交失败,外部事务不影响内部事务,或者外部事务提交成功,但内部事务失败的异常被外部事务catch住,则不影响外部事务。
2.Spring集成SpringMVC
2.1配置web.xml配置文件
Servlet标签配置SpringMVC的核心控制器和加载SpringMVC配置文件—>配置加载Spring配置文件—>配置监听器-->解决中文乱码问题
2.2创建ApplicationContextMvc.xml配置文件
配置扫描Controller层—>视图解析器
配置Tomcat,进行测试环境是否搭建完毕
连表查询结果在页面展示,需要用到formatter属性定义一个方法,然后用JS代码调用该方法获取关联外键的表的数据信息