暑期自学 Day 20 | Spring (六)
JdbcTemplate
- 作用:用于和数据库交互,实现对表的CRUD操作
- 使用方法:通过新建对象或xml配置
- 操作方式
- 增删查改
- 增,改,删都使用update方法
- 查,使用query方法。第二个参数使用
BeanPropertyRowMapper<T>(T.class)
返回内容。queryForObject()查询返回一行一列。
- 实例代码
- 增删查改
- 说明:
- 其实 JdbcTemplate 的使用和大多数类的使用一样,都是通过配置IoC容器实现对象的创建和方法的调用。和QueryRunner类似,只是把BeanHandleList<>()改成了BeanPropertyMapper<>()
Spring 中事务控制
自编代码配置
- 可以使用自己编程实现,利用AOP编程,指定切面和切入点,使用环绕通知自定义设定事务开启,提交,回滚,释放的顺序。这个过程使用到了动态代理思想。
使用xml配置spring中的事务控制
使用步骤如下:
- 配置事务管理器。这一步的目的是让事务管理器和数据库连接。
- 使用之前用过的bean标签配置。
- 配置事务的通知。给事务通知添加唯一的id,并指定事务管理器。
<tx:advice>
标签
- 配置AOP。先配置通用的切入点表达式,然后指定该切入点使用事务通知。
- 使用之前用过的配置方式。在
<aop:config>
中配置。
- 使用之前用过的配置方式。在
- 在事务通知中配置事务的属性。
- isolation: 指定事务的隔离级别,默认值是DEFAULT,表示使用数据库的默认隔离级别
- propagation:指定事务的传播行为,默认值是REQUIRED,表示一定会有事务,增删改可用,查询方法选择SUPPORTS
- read-only:指定事务是否只读,查询是设为TRUE,默认值是false
- timeout:指定事务的超时时间,默认值是-1,不超时。指定时以秒为单位
- rollback-for:指定一个异常,产生该异常时事务回滚,否则事务不回滚;没有默认值表示任何异常都回滚。
- no-rollback-for:指定一个异常,产生该异常时事务不回滚,否则事务回滚;没有默认值表示任何异常都回滚。
- 代码详见:实例代码
基于注解的事务控制
使用步骤如下:
- 配置事务管理器。需要使用bean标签配置,因为事务管理器在导入的jar包内。
- 开启spring对注解配置事务的支持
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
- 在需要开启事务支持的类上注解
@Transactional
,并配置相应事务属性。- 代码详见:实例代码
基于纯注解的事务控制
要把原先bean.xml
中的一些配置转化为注解类型的配置。
比如先前已经将事务用@Transactional配置,以及之前使用过的@Service,@Repository来配置业务层,持久层的对象。
对于数据库配置,我们需要创建相关的配置类,实现对DataSource,以及JdbcTemplate的配置。数据库相关的数据需要写在properties文件中。
我们还需要使用@EnableTransactionManagement开启纯事务配置。
-代码详见:实例代码
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: