暑期自学 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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!