文档章节

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

silence88
 silence88
发布于 2017/02/16 23:12
字数 810
阅读 58
收藏 3

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

使用jdbcTemplate的过程

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

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

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

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

实现CRUD代码

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

  • 查询

    1. 返回基本数据类型

    2. 返回对象

第一个参数是sql语句

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

第三个参数是 可变参数

Spring配置连接池和dao使用jdbcTemplate

   1. spring配置c3p0连接池

   2. dao使用jdbcTemplate

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

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接口,针对不同的持久化技术提供了不同的实现类。

  • spring事务管理两种方式

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

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

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

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

第一步 配置事务管理器

第二步 配置事务增强

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

第三步 配置切面

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

第一步 配置事务管理器

第二步 开启事务注解

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

 

© 著作权归作者所有

共有 人打赏支持
silence88
粉丝 7
博文 71
码字总数 72855
作品 0
深圳
程序员
Spring框架笔记(二十四)——Spring中的JDBC的两种使用方式

为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. 作为 Spring JDBC 框架的核心, JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法...

HappyBKs
2015/08/26
0
0
SpringBoot的dao层、JdbcTemplate多数据源访问实例

前言: Spring boot集成mybatis大致过程如下: (1)新建maven project,在pom.xml文件中引入相关依赖。 (2)配置文件application.yml(application.properties) (3)编写pojo实体类 (4...

wangxuwei
2017/11/01
0
0
Spring环境搭建之:控制反转(IoC Inversion of Control)与依赖注入(DI Depenency Injection)

控制反转,要明白是控制什么,怎么反转了就OK了 1.控制什么 不用Spring框架时,每个类文件中所用到的对象都要我们在代码中通过new来创建,这样一来,在面向接口编程时,也要通过new来明确的创...

木子丰
2013/11/27
0
0
SpringData入门笔记(二) - SpringJdbc template

目标 有一个学生表,属性有id/name/age,id自增,通过spring-jdbc的方式查询所有数据,添加数据。 项目结构 Maven依赖 代码编写 建立对象模型 Student.java spring配置文件 - beans.xml 创建...

dotleo
2017/11/05
0
0
Hibernate与JdbcTemplate共享事务管理

在Spring和Hibernate的配置文件中,我们可以对类中的方法进行事务控制,也就是说某个方法中含有多个数据库的写操作,我们可以通过创建一个Spring中的HibernateTransactionManager实例,把相应...

安克诚
2012/09/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day60-20180818-流利阅读笔记-待学习

钉钉:工作的归工作,生活的…也归工作? 毛西 2018-08-18 1.今日导读 你用过“钉钉”么?被公司要求使用钉钉的感受是如何的呢?这款阿里巴巴旗下的移动办公社交平台在弯道超车微信、为许多企...

aibinxiao
44分钟前
6
0
Kubernetes的HTTPS和证书问题,汇总

通过Kubernetes建立服务网站,需要干的事情和HTTPS和证书问题,汇总如下: 建立Nginx服务器 搞服务器第一步,Ubuntu 18.04设置静态IP 安装Nginx服务。 Kubernetes的deployment使用 创建服务,...

openthings
59分钟前
2
0
php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
今天
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
今天
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部