JdbcTemolate类的介绍<一>
JdbcTemolate类的介绍
JdbcTemplate是Spring JDBC的核心类,封装了常见的JDBC的用法,同时尽量避免常见的错误。该类简化JDBC的操作,我们只需要书写提供SQL的代码和如何返回的结果的代码。JdbcTemplate可以执行查询、更新等操作、初始化对ResultSets的遍历操作以及捕获JDBC异常并将其转换成在org.springframework.dao包下定义的更常规更有用的异常类。
通过实现回调接口,可以自定义这些回调函数的具体操作。其中,PreparedStatementSetter和RowMapper是两个最常用的回调接口。
所有的SQL的操作都被以org.springframework.jdbc.core.JdbcTemplate下的debug级别的日志所记录。
说明:该类的实例在配置后是线程安全
JdbcAccessor类介绍
JdbcAccessor类是JdbcTemplate类的基类,用于处理JDBC的连接操作,同时也定义数据源、异常翻译器等常用属性。
JdbcOperations接口介绍
JdbcOperations接口定义了JDBC的一些基本操作,具体实现则放在JdbcTemplate类中,不推荐直接使用,但是由于比较适合于mock和stub,因此在测试的时候是一个非常好的选择。
JdbcTemplate的变量
ignoreWarnings
如果该变量为false,那么将抛出JDBC警告(SQL warnings)。默认为true。
说明:SQL Warnings 来处理不太严重的异常情况、非致命错误或意想不到的条件,因此可以忽略它们。
fetchSize
如果该变量为非负值,那将赋值给用于执行查询的statements的fetchSize变量。默认为-1。
maxRows
如果该变量为非负值,那将赋值给用于执行查询的statements的maxRows变量。默认为-1。
queryTimeout
如果该变量为非负值,那将赋值给用于执行查询的statements的queryTimeout变量。默认为-1。
skipResultsProcessing
如果该变量为true, 那么所有可调用语句处理都将绕过所有结果检查,这可以用来避免一些早期版本oracle jdbc驱动程序(如 10.1.0.2)中的bug。默认为false。
skipUndeclaredResults
如果该变量为true,那么有输出参数的存储过程的调用结果检查将被省略,除非skipResultsProcessing为true,否侧其他返回结果都将被处理。默认为false。
dataSource
该变量为javax.sql.DataSource类型,从JdbcAccessor类继承而来,可以为null,但是在Spring初始化Bean的时候会检查该变量,如果为null,将抛出IllegalArgumentException,提示"Property 'dataSource' is required"。
exceptionTranslator
该变量属于一个函数式接口,用于将SQLException和Spring自定义的DataAccessException转化,从JdbcAccessor类继承而来,可以为null。
lazyInit
如果该变量为true,那么知道第一次遇到SQLException,否则不初始化exceptionTranslator。默认为true。
因为JdbcAccessor类继承了InitializingBean接口,而JdbcTemplate类由继承了JdbcAccessor类,因此Spring初始化JdbcTemplate这个bean的时候会调用afterPropertiesSet。此时如果lazyInit为false且exceptionTranslator,那么则将对exceptionTranslator尝试初始化,如果dataSource为null则使用SQLStateSQLExceptionTranslator进行初始化,否则使用SQLErrorCodeSQLExceptionTranslator。
nativeJdbcExtractor
自定义本地JDBC操作对象,用于操作非标准的JDBC API。
为了更好支持JDBC4,SpringFramework工作组于2017年6月7号在Github上的master分支上删除了nativeJdbcExtractor,但其他分支还存在该变量,尚不清楚为了是否恢复该变量
JdbcTemolate类的介绍<一>的更多相关文章
- oc-12-NSString 类简单介绍及用法
// 11-[掌握]NSString 类简单介绍及用法 #import <Foundation/Foundation.h> int main(int argc, const char * ...
- 【Entity Framework】初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍
本节,简单的介绍EF中的ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager这个几个比较重要的类,它们都位于System.Data ...
- Entity Framework 学习初级篇2--ObjectContext类的介绍
转自:http://www.cnblogs.com/Tally/archive/2012/09/14/2685014.html 本节,简单的介绍EF中的ObjectContext.ObjectQuer ...
- CImage类的介绍与使用
CImage类的介绍与使用 程序代码下载处:http://download.csdn.net/source/2098910 下载处:http://hi.baidu.com/wangleitongxin ...
- Entity Framework 学习初级篇2--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍
本节,简单的介绍EF中的ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager这个几个比较重要的类,它们都位于System.Data ...
- 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比
[原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...
- 设置定时任务(Timer类的介绍)
设置定时任务(Timer类的介绍) 在我们的很多项目中,我们都须要用到定时任务,因此想借此博文来对定时任务进行一个介绍. 设置定时任务过程例如以下: 先new一个Timer对象 Timer timer ...
- java基础-BigDecimal类常用方法介绍
java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...
- java基础-BigInteger类常用方法介绍
java基础-BigInteger类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigInteger类概述 Java中long型为最大整数类型,对于超过long ...
随机推荐
- C# 反射和Type类
一.元数据和反射 1.1 定义 大多数程序都要处理数据,包括读.写.操作和显示数据.然而,对于某些程序来说,它们操作的不是数字.文本或图形,而是程序和程序类型本身的信息. ● 有关程序及其类型的数据被 ...
- WIN7 环境下搭建 PHP7(64 位)操作步骤
WIN7 环境下搭建 PHP7(64 位)操作步骤 一.安装与配置 Apache 1.下载 Apache下载地址:https://www.apachelounge.com/download/ 2.安装 ...
- ajax与文件上传
一.ajax ajax(Asynchronous JavaScript And XML):异步JavaScript和XML,即使用JavaScript语句与服务器进行异步交互,传输的数据为XML(也可 ...
- 关于SVN 操作 提示文件已过时,请先update
提示文件已过时,请先update 错误产生原因:修改文件前没有先update,从svn获取该文件的最新版本. 解决方法:备份你修改后的文件,通过Revert恢复到服务器版本后,再比较之前备份的文件,进 ...
- C#关键字的使用
params object[] 用于函数多参数的定义 public static void Write(string format, params object[] arg); explicit ...
- jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
指定元素中包含 id 属性的, 如: $("span[id]") 代码如下: <span id="span1" name="S1"&g ...
- 初识SqlLite ---.net连接数据库
Sqlite 是一款轻量级的关系型数据库,以小巧和嵌入式闻名.以前只是听说,现在终于忍不住要尝试下.本文的初衷是为.net平台的使用者提供帮助. Sqlite有专门为VS2010开发的程序包,大家可以 ...
- CASE函数
-> 使用类似switch-case与if-else if -> 语法 •case [字段] • when 表达式 then 显示数据 • when 表达式 then 显示数据 ...
- 【WebSocket No.1】实现服务端webSocket连接通讯
前言 现阶段socket通信使用TCP.UDP协议,其中TCP协议相对来说比较安全稳定!本文也是来讲解TCP为主(恕在下学艺不精). 下面是个人理解的tcp/ip进行通讯之间的三次握手! 1.客户端先 ...
- 有道云笔记链接——JAVA面向对象的学习
http://note.youdao.com/noteshare?id=cf39a0e493a6b3c7ad5d22204a7e7843