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类的介绍<一>的更多相关文章

  1. oc-12-NSString 类简单介绍及用法

    // 11-[掌握]NSString 类简单介绍及用法 #import <Foundation/Foundation.h> int main(int argc, const char * ...

  2. 【Entity Framework】初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍

    本节,简单的介绍EF中的ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager这个几个比较重要的类,它们都位于System.Data ...

  3. Entity Framework 学习初级篇2--ObjectContext类的介绍

    转自:http://www.cnblogs.com/Tally/archive/2012/09/14/2685014.html 本节,简单的介绍EF中的ObjectContext.ObjectQuer ...

  4. CImage类的介绍与使用

    CImage类的介绍与使用 程序代码下载处:http://download.csdn.net/source/2098910 下载处:http://hi.baidu.com/wangleitongxin ...

  5. Entity Framework 学习初级篇2--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateManager类的介绍

    本节,简单的介绍EF中的ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager这个几个比较重要的类,它们都位于System.Data ...

  6. 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比

    [原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...

  7. 设置定时任务(Timer类的介绍)

    设置定时任务(Timer类的介绍) 在我们的很多项目中,我们都须要用到定时任务,因此想借此博文来对定时任务进行一个介绍. 设置定时任务过程例如以下: 先new一个Timer对象 Timer timer ...

  8. java基础-BigDecimal类常用方法介绍

    java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...

  9. java基础-BigInteger类常用方法介绍

    java基础-BigInteger类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigInteger类概述 Java中long型为最大整数类型,对于超过long ...

随机推荐

  1. ftp 读取目录列表失败

    在防火墙设置的“例外”选项卡中添加程序: C:\WINDOWS\system32\inetsrv\inetinfo.exe,确定即可!

  2. php,vue,vue-ssr 做出来的页面有什么区别?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由shirishiyue发表于云+社区专栏 目前我这边的web页面,都是采用php+smarty模板生成的,是一种比较早期的开发模式.好 ...

  3. 基于vue框架手写一个notify插件,实现通知功能

    简单编写一个vue插件,当点击时触发notify插件,dom中出现相应内容并且在相应时间之后清除,我们可以在根组件中设定通知内容和延迟消失时间. 1. 基础知识 我们首先初始化一个vue项目,删除不需 ...

  4. JVM参数以及用法

    工作以后,发觉真的几乎没有像大学那样空闲的时间,坐下来看看书写写博客了.最近的一篇博客距离现在已经近一个多月了,最近也在复习Java的东西,准备校招,看了看JVM的东西,就当作记笔记. (一)JVM参 ...

  5. VUE模仿百度搜索框,按上下方向键及回车键实现搜索选中效果

    逻辑介绍: 1.表单获取焦点时,显示搜索建议框 2.输入内容时,请求后台接口,并将返回的数据展示在搜索建议框内 3.表单获取焦点情况下,按键盘上下箭头可实现搜索列表项的切换,按回车可以选择当前激活的选 ...

  6. Java,第16天,属性与方法;

    public class 类名{ private double 财产 = 0://设一个财产的属性: public void 一个月工资(){ this.财产 +=4500: }//设一个方法增加财产 ...

  7. html页面边框的另一种写法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. SQL Server 基本INSERT语句

    1.基本INSERT语句,单行插入 如果没有列出列,则使一一对应. 2.多行插入 3.INSERT INTO ... SELECT 语句 要插入的语句是从其他表中查询出来的. 注意:数据类型得相同或者 ...

  9. Graphviz的安装 - windows环境下

    1. 官网下载 http://www.graphviz.org/ 往下拉,选择这一个 点进去,选择msi文件下载 下载完成之后,直接双击运行即可 安装完成之后要配置环境变量 2. 配置环境变量 将gr ...

  10. Python 利用字典实现类似 java switch case 功能

    def add(): print('add') def sub(): print('sub') def exit(): print('exit') choice = { '1' : add, '2' ...