Spring再回首三:DAO模块(jdbcTemplate)

spring对不同的持久化层技术都进行封装

213211_4erN_3161152.png

使用jdbcTemplate的过程

1 导入jdbcTemplate使用的jar包(第二个包与事务相关的包)

213304_J1lb_3161152.png

2 创建数据源对象,设置数据库信息

3 创建jdbcTemplate对象,设置数据源

4 调用jdbcTemplate对象里面的方法实现操作、

实现CRUD代码

  • 增加(修改、删除操作都是调用update方法,因此这里不列举)

213617_GXKQ_3161152.png

  • 查询

    1. 返回基本数据类型

213818_qtPR_3161152.png

    2. 返回对象

213853_cOkq_3161152.png

第一个参数是sql语句

第二个参数是 RowMapper,是接口,类似于dbutils里面接口,需要开发者实现该接口,完成对象的映射操作

214004_ZvIv_3161152.png

第三个参数是 可变参数

Spring配置连接池和dao使用jdbcTemplate

   1. spring配置c3p0连接池

214453_jgjO_3161152.png

   2. dao使用jdbcTemplate

创建jdbcTemplate对象,把模板对象注入到dao里面,dataSource对象注入到jdbcTemplate对象中

214743_tU8H_3161152.png

214724_KA5B_3161152.png

Spring事务管理

  • 事务特性(ACID)

        原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
        一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
        隔离性(Isolation): 一个事务的执行不能被其他事务干扰。
        持续性/永久性(Durability):一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

  • 事务隔离级别

        事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。关于事务隔离级别的详细说明参考文章:http://blog.csdn.net/qq_33290787/article/details/51924963

        大多数数据库默认的事务隔离级别是Read committed,比如Sql Server , OracleMySQL的默认隔离级别是Repeatable read。

  • Spring的事务管理实现

Spring的事务管理提供了一个统一的接口Platformtransactionmanager接口,针对不同的持久化技术提供了不同的实现类。

221253_WPFm_3161152.png

  • spring事务管理两种方式

    • 编程式事务管理(不用)

      • 这种方式就是在代码中去编写事务控制的代码,虽然介入了业务代码,但是在某些情况下也是有必要的,而这种事务管理依赖的累就是:org.springframework.transaction.support.TransactionTemplate。具体可参考文章:http://blog.csdn.net/honglei915/article/details/50849459
    • 声明式事务管理(基于xml和基于注解两种形式)

  • 声明式事务管理(xml配置)

配置文件方式使用aop思想配置

第一步 配置事务管理器

223707_4JHP_3161152.png

第二步 配置事务增强

223728_Dibi_3161152.png

说明:propagation=rerquired:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

第三步 配置切面

224132_VH9h_3161152.png

  • 声明式事务管理(注解)

第一步 配置事务管理器

第二步 开启事务注解

224226_7UO8_3161152.png

第三步 在要使用事务的方法所在类上面添加注解@Transactional(在类上添加代表类中所有的方法都会受到事务的控制)

 

转载于:https://my.oschina.net/silence88/blog/840418

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值