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 提供的主要方法可以分为几类:
execute
:可以用于执行任何SQL语句,一般用于执行DDL语句。
update/batchUpdate
:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句。
query/queryForXXX
:用于执行查询相关语句。
call
:用于执行存储过程、函数相关语句。
1、查询记录数
2、查询对象
3、查询对象队列
4、新增
5、更新
6、删除
参考
- Author:mcbilla
- URL:http://mcbilla.com/article/30bd74cf-85df-4b20-b489-6f35783fa84e
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts