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 ...
随机推荐
- LearnOpenGL学习笔记(一)——现有代码理解
首先,给出这次学习的代码原网址.------>原作者的源代码 (黑体是源码,注释是写的.) 引用的库(预编译): #include <glad/glad.h> //控制编译时函数的具 ...
- GAN笔记——理论与实现
GAN这一概念是由Ian Goodfellow于2014年提出,并迅速成为了非常火热的研究话题,GAN的变种更是有上千种,深度学习先驱之一的Yann LeCun就曾说,"GAN及其变种是数十 ...
- JavaScript之radio遍历
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- maven自动部署项目以及常见问题解决
Maven自动部署war到Tomcat1. 在maven项目的pom里配置如下信息 <build> <finalName>dianxiao</finalName> ...
- 如何在线显示php源代码
通过php提供的函数highlight_file和highlight_string实现
- Spring之IOC容器
在前面博客中介绍什么是依赖注入时有提到:依赖注入是组件之间依赖关系由容器在运行期决定,即由容器动态的将某个依赖关系注入到组件之中.那什么是容器?既然Spring框架实现了IOC,那Spring中的容器 ...
- SpringMVC4+Hibernate5+SQLServer 2014 整合(包括增删改查分页)
前言 前面整合完了SpringMVC+MyBatis,自然也少不了SpringMVC+Hibernate,严格来说Hibernate才是我们真正想要的ORM框架么.只记得最初学习hibernate时, ...
- Windows Server 2008 R2 如何关闭防火墙
1. 打开 [控制面板],选择 - [检查防火墙状态] 2. Windows防火墙窗口界面,选择 – [高级设置] 3. 选择– [windows防火墙属性] 4.在[域配置文件], ...
- iOS SDK开发汇总
以前也做过静态库的开发,不过都是一些简单的调用,最近在做项目的时候,发现其中还有很多问题,所以建个小项目简单记录遇到的问题以及正确的解决办法. 在项目中遇到的问题如下:xib文件获取不到, story ...
- JS校验身份证号的合法性
前端表单中有身份证号的校验,下边是用JS来校验身份证号的合法性. 中国居民身份证号码编码规则 第一.二位表示省(自治区.直辖市.特别行政区). 第三.四位表示市(地级市.自治州.盟及国家直辖市所属市辖 ...