type
status
date
slug
summary
tags
category
icon
password

一、JdbcTemplate简介

JdbcTemplate是什么

如果使用 JDBC 原生 API 操作数据库,每执行一条 SQL 语句都需要进行以下操作:
  • 创建全局DataSource实例,表示数据库连接池;
  • 在需要读写数据库的方法内部,按如下步骤访问数据库:
    • 从全局DataSource实例获取Connection实例;
    • 通过Connection实例创建PreparedStatement实例;
    • 执行SQL语句,如果是查询,则通过ResultSet读取结果集,如果是修改,则获得int结果。
上面这些步骤有一部分其实是执行 SQL 语句通用的步骤,完全可以抽成公共的方法,减少重复冗余的代码工作量。spring-jdbc 模块对 JDBC 原生 API 进行了封装,屏蔽了驱动的加载、数据库连接的开启与关闭、SQL 语句的创建与执行、异常处理等底层工作,用户可以使用更简单的工具实现 JDBC 编程。JdbcTemplate 就是其中最常用的操作数据库的工具。
在实际生产中,我们很少直接使用 JdbcTemplate 来操作数据库,一般都会使用 ORM 框架(Mybatis、hibernate等)。但是在某些特殊的情况下,比如只想简单地验证某行 SQL 的正确性,这时候搭建个 ORM 框架略显笨重,这时最好的选择就是 JdbcTemplate。

JdbcTemplate配置

1、引入相关依赖
2、如果使用 Spring 框架,配置如下
如果使用 Spring Boot 框架,spring-boot-starter-jdbc 会自动注入 DataSource 和 JdbcTemplate 实例,无需再手动注入,我们只需要在 application.properties 里面配置
3、使用示例。

NamedParameterJdbcTemplate

在经典的 JDBC 用法中,SQL 参数是用占位符 ? 表示,这种称为定位参数。定位参数的问题在于,一旦参数的顺序发生变化,就必须改变参数绑定,否则就绑定错了。
spring-jdbc 模块提供了另外一种方式来绑定定 SQL 参数:具名参数(named parameter)具名参数是指 SQL 按名称(以冒号开头)而不是按位置进行指定。具名参数更易于维护,也提升了可读性,具名参数在实际运行时会被框架自动替换成占位符。
NamedParameterJdbcTemplate 是 Spring 2.0 提供的实现具名参数的工具,可以使用 JdbcTemplate 的全部方法。(它内部持有一个 JdbcTemplate 的引用,所以能够执行 JdbcTemplate 的所有方法)。
配置 NamedParameterJdbcTemplate 的方式类似于 JdbcTemplate。
使用示例

二、JdbcTemplate使用

JdbcTemplate 日常本来就用的不多,所以跳过源码解析环节,直接上手说用法。JdbcTemplate 提供的主要方法可以分为几类:
  1. execute:可以用于执行任何SQL语句,一般用于执行DDL语句。
  1. update/batchUpdate:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句。
  1. query/queryForXXX:用于执行查询相关语句。
  1. call:用于执行存储过程、函数相关语句。

1、查询记录数

2、查询对象

3、查询对象队列

4、新增

5、更新

6、删除

参考

Spring系列:使用事务Spring源码:AOP原理
mcbilla
mcbilla
一个普通的干饭人🍚
Announcement
type
status
date
slug
summary
tags
category
icon
password
🎉欢迎来到飙戈的博客🎉
-- 感谢您的支持 ---
👏欢迎学习交流👏