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 ...
随机推荐
- oracle创建完实例删除的时候报ORA-01031:insufficient privileges错误,解决办法
创建了一个数据库,想删除确报了一个ORA-01031:insufficient privileges错误 查了好久,总算解决了,原因是我的电脑登录账户不在ORA_DBA系统群组中,添加进去完美删除! ...
- java中是如何解决编码问题的,比如char类型的对象是如何存储的呢?
主题句:每个编码形式将字符从字符集转换为编码数据. 说白了一个代码点就是一个Unicode字符.代码单元就是代码点的集合. 字符视图 要了解字符集标准,您必须能区分三种不同的字符视图: 字符集(字符的 ...
- Effective Objective-C [上]
网上看到的 http://esoftmobile.com/2013/08/10/effective-objective-c/ 本文是针对<Effective Objective-C>一书的 ...
- Xcode 运行时找不到xib资源文件
调试运行时候,提示找不到xib(或者其他)资源文件,在工程中确实看的到该资源文件,到具体运行的资源目录([[NSBundlemainBundle] resourcePath]),没有看到该文件,而其他 ...
- 196D The Next Good String
传送门 题目大意 给定n和一个字符串,求一个新字符串使得这个字符串不存在长度大于等于n的回文子串且在字典序大于原串的情况下最小. 分析 我们知道如果有一个长度为n+2的回文串,那它一定由一个长度为n的 ...
- vue 之 Nodejs介绍
Nodejs英文网:https://nodejs.org/en/ 中文网:http://nodejs.cn/ 我们会发现这样一句话: 翻译成中文如下: Node.js 是一个基于 Chrome V8 ...
- Entity Framework Tutorial Basics(4):Setup Entity Framework Environment
Setup Entity Framework Environment: Entity Framework 5.0 API was distributed in two places, in NuGet ...
- 关于用Date类计算活了多少天和用Calendar类计算闰年的demo
在javaSE阶段,Date类和Calendar类以后会经常用到 这两个类当中的一些常用方法 通过两个demo 进行学习和练习 第一个要求如下:让用户自己输入yyyy-MM-dd 格式的年月日 然后得 ...
- Adb无法连接Genymotion
后来注意到Genymotion启动的时候adb无法正常使用,反复调用adb启动新的server也无法解决 解决起来很简单.打开Genymotion设置界面,进入ADB标签,选中Use custom A ...
- easyui 展开缩起
1.引用jquery-easyui-1.4.4/datagrid-detailview 2.增加属性 view: detailview, detailFormatter: function (rowI ...