文档章节

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

silence88
 silence88
发布于 2017/02/16 23:12
字数 810
阅读 53
收藏 3
点赞 0
评论 0

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
博文 56
码字总数 72855
作品 0
深圳
程序员
spring mvc配置 + dbcp数据源+jdbcTemplate

最近打算仔细研究一下spring,就从用了2年的spring mvc开始吧,初学者可以看看,大神就pass好了,呵呵.... 首先去spring官网下载完整的spring包,包含libs, docs和schema,spring的版本是3.2.4 我们...

qq59410a0b9a625 ⋅ 2017/06/15 ⋅ 0

Java Web学习(六)

功能介绍 登录页面提供一个用户名/密码输入表单,用户填写并提交表单后,服务端检查是否有匹配的用户名/密码。若没有,则返回到登录页面,并给出提示。若匹配,则记录用户的登录日志,更新用...

kakayang2011 ⋅ 2016/03/11 ⋅ 0

搭建Spring MVC环境进行简单的增、删、改、查。

Spring MVC流程说明:用户向Web服务器发送请求Web服务器根据web.xml文件找到请求映射到的Contorller处理器。处理器根据请求访问业务Service层和DAO层进行处理然后把得出的返回结果到前端JSP...

期待变强的菜鸟 ⋅ 2014/04/07 ⋅ 3

Spring Boot 使用JdbcTemplate

配置pom.xml文件引入JdbcTemplate依赖 在pom.xml加入JdbcTemplate的依赖(这里要注意的是,如在pom.xml中已引入“JPA”依赖的话,则不需要在引入JDBC了) 引入JdbcTemplate 在需要使用的类中...

_某人 ⋅ 06/05 ⋅ 0

java基础---深入解析spring中用到的九种设计模式

转载请注明出处,文章首发于:http://itxxz.com/a/javashili/tuozhan/2014/0601/7.html 设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记...

u010775025 ⋅ 04/25 ⋅ 0

jdbcTemplate和Spring配置C3P0连接池

一 概述 1 spring框架一站式框架 (1) 针对javaee三层,每一层都有解决技术 (2) 在dao层,使用jdbcTemplate 2 spring对不同的持久化层技术都进行了封装 ORM持久化技术 模板类 JDBC org.s...

Bbigbug ⋅ 2017/10/31 ⋅ 0

Spring入门到精通Spring访问数据库

Spring在数据访问方面提供了模板化和Dao支持类的提供,方便操作数据库。 一、Spring JDBC (详细配置:http://my.oschina.net/wangning0535/blog/535590?fromerr=MIriquMm) 1、配置数据源 Da...

Winnie007 ⋅ 2015/10/20 ⋅ 0

Spring——JdbcTemplate和namedParameterJdbcTemplate

1.JdbcTemplate JdbcTemplate类被设计成线程安全的,所以可以在IOC容器中声明它的单个实例,并将这个实例注入到所有的DAO实例中。 JdbcTemplate使用SQL语句放入DAO类的各个方法中封装。 即D...

努力学习ding ⋅ 03/29 ⋅ 0

Spring框架笔记(二十四)——Spring中的JDBC的两种使用方式

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

HappyBKs ⋅ 2015/08/26 ⋅ 0

SpringMVC,mybatis,spring整合

需求:使用SpringMVC和mybatis完成商品列表查询 一 整合思路 1 相关jar包(maven) 2 整合dao层 mybatis和springmvc整合,通过spring管理mapper接口 使用mapper的扫描器自动扫描mapper接口在...

Bbigbug ⋅ 04/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 29分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 45分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 今天 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部