- 浏览: 460436 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (369)
- javascript html (20)
- java (31)
- jquery (15)
- jcrop (0)
- JEECG (1)
- ajax (3)
- 反射 (3)
- VI (1)
- mysql (48)
- easyui (1)
- svn (2)
- MD5 加密 (1)
- spring (14)
- ORACLE (8)
- 经验总结 (1)
- TCP/IP协议 (1)
- ICMP协议 (1)
- eclipse (1)
- Reflect (1)
- linux (21)
- android (5)
- excel 操作 (1)
- java tree (1)
- html (1)
- plupload (1)
- mongodb (9)
- aes (1)
- python (1)
- java relax (1)
- highcharts (2)
- json (2)
- java 多线程 (30)
- maven (2)
- 设计模式 (1)
- jsp+js (2)
- 面向对象 (1)
- jvm (16)
- 缓存 (1)
- proxy (1)
- 聊侃 (1)
- 面经 (1)
- java 字节 (1)
- java 类加载器 (2)
- java 基础 (2)
- java 语法糖 (1)
- java 位运算 (1)
- 排序 (3)
- java 服务器性能优化 (19)
- 网络编程 (2)
- jvm 参数设置 (0)
- jersey (1)
- webservice (2)
- nginx+多tomcat 集成 (5)
- nginx (16)
- squid (3)
- memcached (5)
- 正则表达式 (1)
- 常用免费接口 (1)
- jpa (1)
- win7 (1)
- java处理大文件 (1)
- js正则表达式 (1)
- tomcat (1)
- java 敏感字 (1)
- 系统架构优化 (4)
- 学习 (1)
- 本地测试QQ微博第三方登陆 (1)
- java 错误 (1)
- 微信支付 (1)
- https (1)
- httpclient (1)
- awk (2)
- loadrunner (1)
- sql server 2008 (3)
- git (4)
- sql server2008 (1)
- solr (2)
- centos (1)
- 数据存储架构 (3)
- log4j (1)
- weboffice (1)
- 并发编程 (1)
- postgreSQL (0)
- ssl (1)
- openssl (1)
- activeMQ (2)
- IDEA (1)
- shell (1)
- ansible (4)
- docker (2)
- grafana (1)
- jmeter (1)
- TLS (1)
- 将博客搬至CSDN (1)
最新评论
-
dida1990:
啊喔,过去了这么久,不过还是评一个。谁说uuid的hashCo ...
高并发生成订单号(二) -
annan211:
yclovesun 写道使用了uuid,为什么还要machin ...
高并发生成订单号(二) -
yclovesun:
使用了uuid,为什么还要machineId?uuid已经可以 ...
高并发生成订单号(二) -
u013280917:
太深奥,看不懂
mysql优化特定类型的查询
spring 事务传播属性 百分之八十用到的都是 required ,并且这个事被默认使用的。
其含义为 业务方法需要在一个事务中运行,如果方法运行时,已经处在一个事务中,那么加入该事务,否则为自己创建一个新的事务。
该事务为spring默认属性,通常情况下不需要显示标记。
这里使用注解模式 简单解析一下,不做深入探讨。
1 注册事务管理器 交给spring容器管理。
<bean id="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!--使用注解@Transactional注解方式--> <tx:annotation-driven transaction-manager="txManager"/>
2 使用注解 管理事务
spring 事务回滚与否需要配置,默认情况下,方法在遇到运行期例外(unchecked)的情况下是会自动进行事务回滚的,除非在方法注解 注明:@Transactional(noRollbackFor=RunntimeException.class)
如果遇到的是 checked例外(显示抛出异常,或者 try chach语句块) 默认是不会进行回滚的 ,除非在 方法注解注明 @Transactional(rollbackFor=Exception.class)
有些方法是不需要开启事务支持的,比如 获取对象,事务的开启和关闭会浪费资源,这样我们可以通过 注解注明 不开启事务。
@Transactional(propagation=Propagation.NOT_SUPPORT)
@Transactional public class PersonServiceBean implements PersonService { private JdbcTemplate jdbcTemplate; // 这里使用set注入 public void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } public void delete(Integer personid) { jdbcTemplate.update("delete from person where id=?", new Object[]{personid}, new int[]{java.sql.Types.INTEGER}); } public Person getPerson(Integer personid) { return (Person)jdbcTemplate.queryForObject("select * from person where id=?", new Object[]{personid}, new int[]{java.sql.Types.INTEGER}, new PersonRowMapper()); } @SuppressWarnings("unchecked") public List<Person> getPersons() { return (List<Person>)jdbcTemplate.query("select * from person", new PersonRowMapper()); } public void save(Person person) { jdbcTemplate.update("insert into person(name) values(?)", new Object[]{person.getName()}, new int[]{java.sql.Types.VARCHAR}); } public void update(Person person) { jdbcTemplate.update("update person set name=? where id=?", new Object[]{person.getName(), person.getId()}, new int[]{java.sql.Types.VARCHAR, java.sql.Types.INTEGER}); } }
回调函数 public class PersonRowMapper implements RowMapper { public Object mapRow(ResultSet rs, int index) throws SQLException { Person person = new Person(rs.getString("name")); person.setId(rs.getInt("id")); return person; } }
发表评论
-
spring aop 切入点配置,重用切点表达式
2014-11-08 15:54 1327spring aop 配置时,需要多处配置切入表达式,这 ... -
spring aop 优先级
2014-11-08 15:43 913spring aop 横切面有多个时,涉及到 优先级问题。 ... -
spring aop 基于注解配置
2014-11-08 15:27 569spring aop 的作用是 1 每一个事务逻 ... -
spring bean 的基础配置
2014-11-08 00:05 626spring bean的配置包含 3种基本情况 1 ... -
spring 事务配置
2014-11-03 21:36 753spring 官方团队 建议我们使用注解方式 配置事务,这 ... -
spring 事务属性分类
2014-11-02 22:49 620required 业务方法需要在一个事务中运行,如归哦方 ... -
spring jersey整合后无法注入
2014-10-27 17:26 825spring jersey整合后无法注入 -
Spring什么时候实例化bean,首先要分2种情况
2014-08-28 17:59 817Spring什么时候实例化bean,首先要分2种情况 ... -
spring 设置切入点,在特定方法之前执行特定逻辑代码
2013-08-29 12:56 1040第一步 加入jar包 aspectjweaver.jar a ... -
spring 定时器
2013-07-18 11:34 1329第二种:使用注解形式 也许我们不想每写一个任务类还要在xml文 ... -
spring 中bean的生命周期
2013-07-15 22:38 982spring 中bean的生命周期是在bean的声明中通过sc ... -
spring Ioc 依赖注入的三种方式:构造函数注入、setter方法注入和接口注入
2013-07-15 22:33 3673spring 中 注入方式分为构造方法注入和setter方法注 ... -
spring mvc 经典入门
2013-07-09 18:05 1060现在主流的Web MVC框架除了Struts这个主力 外,其次 ...
相关推荐
Spring JDBC还支持事务管理,使开发者能够轻松处理数据库事务的提交和回滚。 **Maven** Maven 是一个项目管理和综合工具,它帮助开发者管理依赖关系、构建项目、执行自动化测试等。通过在`pom.xml`文件中定义项目...
在Java开发中,使用JDBC、Spring和MySQL进行数据操作时,事务管理是非常关键的一环。事务确保了数据的完整性和一致性,尤其是在并发环境中。以下是对`jdbc+spring+mysql事务理解和分析`的详细说明: 1. **原子性...
Spring框架则是一个全面的企业级应用开发平台,它不仅包含Spring MVC,还提供了依赖注入(DI)、AOP(面向切面编程)、事务管理、JDBC抽象、缓存、任务调度等多个核心功能。在全注解开发中,我们可以使用@Autowired...
Spring MVC、Spring和Spring JDBC是Java开发中非常重要的三大框架,它们构成了Spring框架的核心部分,广泛应用于企业级应用开发。本实例源码旨在提供一个整合这三者的基础模板,帮助开发者理解和掌握它们之间的协同...
在思维导图"Spring Transaction.twd"中,可能包含了Spring事务管理的各个概念和它们之间的关系,如事务的ACID属性(原子性、一致性、隔离性和持久性),事务管理器,以及声明式和编程式事务管理的实现方式。...
本资源主要介绍基于Spring JDBC的事务管理,包括事务的定义、使用 @Transactional 注解、Spring JDBC的事务管理机制、事务的ACID特性、事务的传播、事务的隔离等内容。 事务的定义 事务是一种数据库中能够保证一...
在Spring整合中,JDBC通常通过Spring的数据访问抽象层来使用,例如JdbcTemplate或NamedParameterJdbcTemplate,它们简化了SQL查询的编写和执行,同时提供了事务管理和异常处理。在本项目中,可能有一个配置文件(如`...
在事务管理方面,Spring提供了编程式和声明式事务管理,使得开发者能够轻松地处理事务的ACID属性。 **MyBatis** 是一个优秀的持久层框架,它简化了数据库操作。MyBatis将SQL与Java代码分离,允许开发者编写高度灵活...
本篇文章将深入探讨Spring JDBC如何通过注解来实现事务管理。 1. **Spring JDBC简介** Spring JDBC提供了一个JdbcTemplate类,它封装了常见的JDBC操作,如执行SQL查询、更新、调用存储过程等,减少了代码量和出错...
关键类如`TransactionDefinition`定义了事务属性,如隔离级别、超时时间等;`TransactionStatus`接口则表示当前事务的状态。在事务管理器内部,Spring会根据这些信息创建并维护事务。 **工具使用**:Spring提供了...
2. 在业务代码中,通过TransactionDefinition定义事务属性(如隔离级别、超时时间等)。 3. 使用TransactionTemplate或者直接调用PlatformTransactionManager的方法来管理事务的生命周期。 **声明式事务管理**: 1....
同时,我们还可以根据业务需求调整事务的隔离级别、传播行为、超时限制等属性。 综上所述,"Spring+Mybatis+事务"的组合在Java后端开发中占据着重要地位,这个压缩包"Spring_Mybatis"可能包含了Spring和MyBatis的...
Spring JDBC通过抽象出数据库连接管理、事务处理以及结果集处理等繁琐工作,使得开发者可以专注于SQL语句和业务逻辑,而不必过于关心底层数据库交互的复杂性。 在Spring JDBC中,主要涉及到以下几个关键概念: 1. ...
声明式事务管理是通过在配置文件或注解中声明事务属性,如传播行为、隔离级别、超时和回滚规则,从而实现事务管理。这使得开发者无需在业务逻辑代码中手动管理事务的开始、提交和回滚。Spring的`...
4. **事务管理**:Spring还提供了事务管理能力,可以在方法级别或类级别声明事务边界。例如,对于需要原子性的操作,可以添加`@Transactional`注解。 通过这个实例,我们可以看到Spring+JDBC的结合使用大大简化了...
此外,Spring还提供DataSourceTransactionManager和PlatformTransactionManager作为事务管理器,以及TransactionDefinition接口来定义事务属性。 5. AOP(面向切面编程)在事务管理中的应用:Spring的AOP模块可以让...
在实际开发中,我们可以通过配置XML或Java配置来设置事务管理器,并指定事务属性。例如,使用XML配置,可以在`<tx:annotation-driven>`标签中启用声明式事务管理;在Java配置中,可以使用`@...
2. **声明式事务管理**:通过在配置文件或注解中声明事务属性,由Spring自动进行事务管理。这种方式更加简洁,降低了代码的耦合度,推荐在实际开发中使用。 在SpringMVC和MyBatis集成环境中,声明式事务管理通常...
在Spring的声明式事务管理下,只需在配置文件中声明事务属性,即可实现事务的自动管理,大大提高了开发效率。 在Spring-JDBC中,主要涉及以下几个关键组件: 1. DataSource:数据源是连接数据库的桥梁,Spring支持...