文档章节

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

silence88
 silence88
发布于 2017/02/16 23:12
字数 810
阅读 60
收藏 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
Hibernate与JdbcTemplate共享事务管理

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

安克诚
2012/09/11
0
0
SpringData入门笔记(二) - SpringJdbc template

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

dotleo
2017/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Go interface{} to string

package mainimport "fmt"func main() {var a interface{}a = "dsadjaldaldad"var b stringb = a.(string) // 话说,用人话说的话,这叫什么操作?fmt.Println(a, b)}...

taadis
23分钟前
0
0
数据库防火墙

数据库防火墙顾名思义是一款数据(库)安全设备,从防火墙这个词可以看出,其主要作用是做来自于外部的危险隔离。换句话说,数据库防火墙应该在入侵在到达数据库之前将其阻断,至少需要在入侵...

突突突酱
33分钟前
1
0
RDBMS 关系型数据库与 NoSQL 全面比较

随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求,主要体现在下面这四个方面: 低延迟的读写速度:应用快速地反应能极大地提升用户的满...

PeakFang-BOK
41分钟前
1
0
徒弟做了一个Python的实战小项目——银行系统

国际惯例:实践是检验真理的唯一标准。 众所周知,在编程过程中理论知识再充实也需要通过项目的炼金石。下面给大家看一下我徒弟做的一个小项目实战要求,是做一个银行系统,就是我们去银行办...

无也Python
48分钟前
2
0
vue.js响应式原理解析与实现

从很久之前就已经接触过了angularjs了,当时就已经了解到,angularjs是通过脏检查来实现数据监测以及页面更新渲染。之后,再接触了vue.js,当时也一度很好奇vue.js是如何监测数据更新并且重新...

peakedness丶
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部