spring framework 第一章数据库管理(data access)
spring data access 的网址:https://docs.spring.io/spring/docs/current/spring-framework-reference/index.html
一:spring framework 框架的集成功能很多,主要有四大核心模块:
1.core模块:主要是bean管理,常用的依赖注入和AOP面向切面编程
2.data access: 数据库连接,支持多种数据库(oracle,mysql等)连接,也提供了大量的模板方法对数据的操作,也有强大的事务的管理机制。
3.web servlet: 将代码逻辑分层管理,目前使用的springmvc就是很优秀的分层控制的框架。
4.intergrate: 集成 了远程方法调用,JMS等
二:data access 细分为数据库连接,事务控制,对象关系模型解析映射
1.数据库连接jdbc: spring framework data access 将数据库操作动作分为两类:第一类spring框架的动作(重复并且非动态);第二类程序员的动作(动态数据);
什么叫重复并且非动态?spring data access 帮程序员做了哪些工作?
这是我自己定义的名称,在程序中当有大量重复的动作的时候,这就要考虑对重复动作的复用,体现到代码层定义工具类,重复使用工具。spring 在这里就会充当工具的作用。比如:数据库使用java 原始的jdbc 的连接会有如下步骤:创建数据库连接--->创建sql语句---->执行sql语句---->获取数据进行解析----->关闭数据库连接。 spring 作为工具会帮助我们做执行查询语句,数据解析等。程序员需要做的事情:就是何时打开数据库连接,创建什么样的sql语句。spring 这样做大大减少了我们重复代码的编写。下图是spring 和 you 的分工
x:表示你不需要做的工作
2.spring 的事务管理:全局事务和本地事务。全局事务可以跨多个数据源进行数据管理,本地事务只能保证一个数据源的事务管理。
3.spring事务的控制主要是传播策略和隔离级别,传播策略控制方法级别的事务,隔离级别控制数据重复读,脏读,虚读和幻读。
4.spring 设置超时回滚
5.设置只读:当被声明为只读的方法时,将不会更新数据库中的数据
6. spring 支持声明式回滚和硬编码回滚和注解方式回滚,但是只建议使用声明式回滚
7.支持多种数据源,通过注解的方式切换数据源