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. SQL 必知必会·笔记<10>联结表

    可伸缩(scale) 能够适应不断增加的工作量而不失败.设计良好的数据库或应用程序 称为可伸缩性好(scale well). 联结(JOIN) 联结(JOIN)是一种机制,用来在一条SELECT 语句 ...

  2. 让BIND9对任意域名查询都返回固定的IP地址

    如何配置BIND9,使得向它发起的所有DNS请求都返回固定的IP地址?通过一些小技巧,可以实现. 下面是一个配置示例: 首先是主配置文件named.conf的配置: zone "." ...

  3. PHP中文转拼音函数

    <?php function Pinyin($_String, $_Code='UTF8'){ //GBK页面可改为gb2312,其他随意填写为UTF8 $_DataKey = "a| ...

  4. lightswitch 添加 TreeView 控件

    代码片段 <UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk&q ...

  5. laravel 制作购物车流程

    ① 购入车数据如何存放? 创建数据表 用户ID 购物时间 缺点: 对服务器有压力. 方案: 定时删除 coolie中: 缺点: 数据不能跨客户端 优点:不会对服务器产生压力 放东西和数量 显示购物车 ...

  6. MyBatis从入门到放弃二:传参

    前言 我们在mapper.xml写sql,如果都是一个参数,则直接配置parameterType,那实际业务开发过程中多个参数如何处理呢? 从MyBatis API中发现selectOne和selec ...

  7. spring事务传播行为之使用REQUIRES_NEW不回滚

    最近写spring事务时用到REQUIRES_NEW遇到一些不回滚的问题,所以就记录一下. 场景1:在一个服务层里面方法1和方法2都加上事务,其中方法二设置上propagation=Propagati ...

  8. Java基础——正则表达式

    一.什么是正则表达式 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表通常被用来检索.替换那些符 ...

  9. 【Java深入研究】5、Proxy动态代理机制详解

    在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的 ...

  10. 性能监控(2)–linux下的vmstat命令

    vmstat它可以统计CPU.内存使用情况.swap使用情况等信息.它还可以指定采样周期和次数.