8.Spring对JDBC的支持和事务
1.Spring对JDBC的支持
DAO :
Spring中对数据访问对象(DAO)的支持旨在简化Spring与数据访问技术的操作,使JDBC、Hibernate、JPA和JDO等采用统一的方式访问
Spring提供了@Repository注解,这一注解同样允许组件扫描来发现和配置自定义DAO
而DAO的实现依赖于某个持久化源,比如一个基于JDBC的DAO需要一个数据源DataSource

JdbcTemplate
JdbcTemplate类是Spring对JDBC支持类库中的核心类
JdbcTemplate负责:
创建和释放资源
执行SQL语句、存储过程,并通过ResultSet来返回数据
使用方式:
XXXDao注入JdbcTemplate,并且给JdbcTemplate注入DataSource
XXXDao继承JdbcDaoSupport类,而JdbcDaoSupport类中定义了JdbcTemplate成员变量
增删改:

增删改:
插入数据,并返回自增主键值

增删改:
批处理:


查询:
实例1:

实例2:

实例3:基于RowMapper查询1个Bean对象

实例4:基于RowMapper查询多个Bean对象

实例4:基于RowCallBackHandler查询

2.Spring对事务的支持
事务:
概念:事务是一组原子操作的工作单元
对事务的描述(ACID)
原子性(Atomic)
事务由一个或多个行为捆绑在一起组成一个单独的工作单元,原子性保证事务中的所有操作要么都发生,要么都不发生
一致性(Consistent)
一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的,也就是说数据应当不会被破坏
隔离性(Isolated)
事务应该允许多名用户操作同一个数据,一名用户的操作不会和其他用户的操作相混淆(隔离级别)
持久性(Durable)
一旦事务完成,事务的结果应该持久化,用来保证即使系统崩溃也不会破坏事务的结果
Spring对事务的支持:
Spring框架对于事务的支持也是吸引人们使用的原因之一
Spring框架提供了对事务的一致性抽象,使得开发人员编写的代码可以在不同的环境下适用于不同的事务管理
Spring框架对事务抽象的关键就是PlatformTransactionManager接口中定义的。

Spring框架提供了编程式事务管理和声明式事务管理
编程式事务管理:
可以清楚地控制事务的边界
可自行实现事务开始时间、结束时间、撤消操作的时机等
可以实现细粒度的事务控制
声明式事务管理:
好处是事务管理的API不介入程序,最符合一个非 侵入型轻量级容器的理想
多数情况下事务不需要细粒度控制,因此建议使用
编程式事务管理
Spring一般都推荐使用TransactionTemplate来进行编程式事务管理
声明式事务管理
Spring Framework的声明式事务管理是建立在Spring的面向切面编程(aspect-oriented programming, AOP) 上的
从概念上来讲, 在事务型代理上调用一个方法看起来像这样:
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分
8.Spring对JDBC的支持和事务的更多相关文章
- 1.Spring对JDBC整合支持
1.Spring对JDBC整合支持 Spring对DAO提供哪些支持 1)Spring对DAO异常提供统一处理 2)Spring对DAO编写提供支持的抽象类 3)提高编程效率,减少DAO编码量 Spr ...
- Spring整合JDBC以及AOP管理事务
本节内容: Spring整合JDBC Spring中的AOP管理事务 一.Spring整合JDBC Spring框架永远是一个容器,Spring整合JDBC其实就是Spring提供了一个对象,这个对象 ...
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Spring对jdbc的支持
Spring对jdbc技术提供了很好的支持. 体现在: 1)Spring对c3p连接池的支持很完善: 2)Spring对jdbc提供了JdbcTemplate,来简化jdbc操作: 1.使用步骤 1) ...
- spring 对JDBC的支持 (8)
目录 一.jdbc的简介 二.jdbcTemplate 的使用 2.1 maven 引入spring - jdbc ,c3p0 ,数据库mysql驱动 2.2 配置 数据源以及jdbcTemplate ...
- Spring对 JDBC 的支持,JdbcTemplate类的使用
导包:spring框架的包 和 连接数据库连接池的c3p0包 连接mysql数据库的包; 在src目录下建立jdbc.properties文件:存放连接数据库的属性值 jdbc.user=root j ...
- Spring框架学习笔记(9)——Spring对JDBC的支持
一.使用JdbcTemplate和JdbcDaoSupport 1.配置并连接数据库 ①创建项目并添加jar包,要比之前Spring项目多添加两个jar包c3p0-0.9.1.2.jar和mysql- ...
- Spring 对JDBC的支持(JdbcTemplate)
Spring对数据库的操作,使用JdbcTemplate对象 需要引入相关的jar文件 如版本:(Spring核心jar包就不列了) spring-jdbc-3.2.5.RELEASE.jar spr ...
- Java进阶知识23 Spring对JDBC的支持
1.最主要的代码 Spring 配置文件(beans.xml) <!-- 连接池 --> <bean id="dataSource" class="co ...
随机推荐
- Windows版本Apache+php的Xhprof应用
[知识] {Apache} Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. {PHP} ...
- JavaWeb 没用
Servlet的生命周期 初始化:Web容器加载servlet,调用innit(),只执行一次 处理业务: 请求到达时,运行service方法 并调用相应的doget或者dopost方法. 可执行多 ...
- p1627 [CQOI2009]中位数
传送门 分析 https://www.luogu.org/blog/user43145/solution-p1627 代码 #include<iostream> #include<c ...
- python3-while与continue
# Auther: Aaron Fan #要返回到循环开头,并根据条件测试结果决定是否继续执行循环,可使用continue#执行continue语句,让python忽略余下的代码 #只打印1到10之间 ...
- Java50道经典习题-程序32 左移右移
题目:取一个整数a从右端开始的4-7位.分析:比如取123456789从右端开始的4-7位即:3456(1)先使a右移4位.(2)设置一个低4位全为1,其余全为0的数.可用~(~0<<4) ...
- Java50道经典习题-程序38 求字符串长度
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. import java.util.Scanner; public class Prog38 { public stat ...
- 正经学C#_判断[switch语句]:[c#入门经典]
switch是一个和IF语句极其相似的语句.但是Switch允许条件可以有多个值. 程序的基本结构如下 switch(textVal) { case Val: 程序代码 break case Val2 ...
- forEach,for in,for of循环的用法
一.一般的遍历数组的方法: var array = [1,2,3,4,5,6,7]; for (var i = 0; i < array.length; i) { console.log(i,a ...
- yyyyMMdd必须严格遵守大小写规范
c#中ToString("yyyyMMdd") 与ToString("yyyymmdd")区别 string a= DateTime.Now.ToString( ...
- cron定时备份数据库
1.定时备份数据库 shell 脚本 #!/bin/bash # export and backup the abgent_web database.sql mysqldump -uusername ...