二十一 spring+jdbc
1)配置数据源 (单例的bean,一般需要使用 destory-method 方法)
2)配置事物 (xml,annotation两种方式)
annotation 声明事物
(1) 声明 txManager <tx:annotation-driven transaction-manager="transactionManager" />
3)定义实体 bean
4)定义业务接口
5)实现业务接口
6)在spring中声明业务类
7)注入dataSource(不建议使用),建议使用 jdbcTemplate
jdbcTemplate.update("insert into person(name) values (?)",new Object[]{"zhangsan"},new int[]{java.sql.Types.VARCHAR})
queryForObject 采用回调方法进行数据封装
二十三 事物
使用 @Transactional 声明事物
默认对于runtimeException (unchecked)会进行回滚,对于checked exception 不回滚。
设定回滚异常 rollbackFor=Exception.class rollbackForClassName
设定不会滚异常 noRollbackFor=RuntimeException.class noRollbackForClassName
propagation 设定事务的传播行为
七种事务传播行为,比ejb多一种NESTED
REQUIRED 需要在一个事务中运行,如果在事务中运行,则加入事务,否则创建新事务。
NO_SUPPORTED 不需要事务,如果在一个事务中,则事务被挂起,执行完后恢复。
REQUIRESNEW 总是开启新事务,两个不同的事务,不会互相影响。
MANDATORY 需要在一个已有事务中运行,如果不存在事务,抛出异常
SUPPORTS 有事务的情况下,使用当前事务,否则不使用事务。
Never 不能在事物中运行,如果有事务,会抛出异常
NESTED 与REQUIRESNEW类似,ejb中没有,只针对DataSourceTransactionManager中有效,原理是在遇到 NESTED 会设定一个savepoint(保存点),如果遇到问题,回滚到保存点,在执行下面的操作。不影响外部事务,如果外部事务出错了,所有的操作都无效,内部的也无效。
readOnly=true 只读事务,不能进行更新操作,提高效率,避免hibernate自动提交
timeout 超时时间,默认30秒
isolation 隔离界别
数据库提供4中隔离级别
read uncommited (脏读)
read commited
repeatable read
seializable
脏读:一个事务读取了另一个事务未提交的数据
不可重复读:一个事务中多次读取同一个数据,返回结果不同
可重复读:一个事务中多次读取同一个数据,返回结果相同 (快照)
幻读:一个事务去读另一个事务已经insert的数据(一般没有问题)
sql server 默认 read commited
mysql 默认 repeatable read
二十四 xml配置事务
可以使用aop的方式配置事务,不能做到精确控制了。
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<aop:config>
<aop:pointcut id="transactionPointcut"" expression="exceution(* ..*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcute-ref="transactionPointcut"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
二十五 spring+hibernate
创建 web 项目
只用调用 getCurrentSession() 方法才能使用事务
persist方法也save方法作用一样,都是保存。
merge与update方法一样。都是更新
分享到:
相关推荐
Spring学习笔记2涵盖了Spring框架的核心概念和重要特性,旨在帮助开发者深入理解并熟练掌握Spring的使用。 1. **依赖注入(Dependency Injection, DI)**:这是Spring最核心的设计原则,它允许对象之间的依赖关系在...
在本篇"Spring 学习笔记二"中,我们将深入探讨Spring框架的核心概念和技术细节,以便更好地理解和使用这个广泛应用于企业级Java开发的框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-...
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
Spring学习笔记( spring视频笔记)
spring学习笔记
### Spring框架核心知识点详解:Bean生命周期与AOP深入解析 #### Bean生命周期管理 Spring框架中的Bean生命周期管理是其核心功能之一,它通过一系列的接口和类来实现对Bean的创建、初始化、销毁等过程的控制。以下...
### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...
Spring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).docSpring学习笔记(马士兵spring视频笔记).doc
本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...
这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...
根据提供的压缩包文件名,我们可以推测这是一个逐步学习Spring的系列笔记。从"Spring_day1"开始,可能涵盖了Spring的基础概念、环境搭建和基本配置。"Spring_day2"可能涉及了依赖注入和AOP的深入讲解。"Spring_day3...
这份"Spring框架学习笔记"涵盖了Spring框架的基础知识、核心组件以及高级特性,对于初学者来说是一份宝贵的资料。 一、Spring框架概述 Spring框架是为了解决企业应用开发的复杂性而设计的,它提供了一个全面的基础...
"尚学堂Spring学习笔记" 本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring配置文件的设置、普通属性的注入、自定义属性编辑器、公共属性的注入、Spring注解等内容。 一、Spring配置文件的设置 在...
“Java Spring学习笔记”是一份宝贵的资源,专门为想要学习和掌握Java Spring框架的开发者而设计。这份学习笔记提供了详细而系统的教程和实践指南,帮助初学者快速入门,并带领已经有一定经验的开发者深入理解和应用...
OAuth2是目前广泛使用的授权框架,它允应用程序通过资源拥有者(用户)的授权来进行操作,Spring Cloud支持使用OAuth2实现统一认证。Spring Cloud的架构设计利用了服务网关、负载均衡、服务注册与发现、配置中心等...
Spring6学习笔记,师承老杜
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...
在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记Spring学习笔记
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...