1. Spring 中使用 JdbcTemplate 封装对 Jdbc 的支持,使用 Spring JdbcTeamplate 的例子如下:
(1). 假设如下 SQL 表中有数据 username=test1,passwd=test1,address=test1 :
(2). 在 Spring 配置文件中添加关于数据源和 JdbcTeamplate 的配置如下:
(3).Java 持久化对象如下:
(4). 使用 JdbcTeamplate 的 DAO 如下:
2.Spring JdbcTemplate 的工作流程:
通过 1 中的小例子,我们可以总结出 Spring JdbcTemplate 的工作流程如下:
(1). 配置数据源:
Spring 中,将管理数据库连接的数据源当作普通 Java Bean 一样在 Spring IoC 容器中管理,当应用使用数据源时 Spring IoC 容器负责初始化数据源。
(2). 将数据源注入 JdbcTemplate :
JdbcTemplate 中 dataSource 属性用于注入配置的数据源, Spring IoC 容器通过依赖注入将配置的数据源注入到 Spring 对 Jdbc 操作的封装类 JdbcTemplate 中。
(3). 应用中使用 JdbcTemplate :
注入了数据源的 JdbcTemplate 就可以在应用中使用了,应用中对数据源的增删改查等操作都可以使用 JdbcTemplate 对外提供的方法操作数据库。
3. JdbcTemplate 处理 Statement 的相关方法实现:
JdbcTemplate 的 execute 方法是 JdbcTemplate 的核心方法,是 JdbcTemplate 调用 jdbc 进行查询,添加,删除和更新操作的基础方法,在 execute 方法中,主要实现对数据库的基本操作,如:获取数据库连接;根据应用对数据库的需要创建数据库的 Statement ;对数据库操作进行回调;处理数据库异常;关闭数据库连接等等。 JdbcTemplate 中有真的 Jdbc 中 Statement 、 PreparedStatement 和 CallableStatement 处理的 execute 方法 ,首先我们分析 处理 Statement 的相关方法:
(1). 处理 Statement 的 execute 方法:
Execute 方法是 JdbcTemplate 执行 jdbc 操作的核心,其他的方法都是通过调用 execute 方法来操作数据库。
(2). Statement 的查询方法:
JdbcTemplate 处理 Statement 的查询方法有很多,但是其中最基本的方法源码如下:
(3).Statement 的更新方法:
通过对 Statement 相关处理的方法源码分析,我们可以看出 execute 方法是核心方法,在 execute 方法中,主要获取数据库连接和创建 Statement ,同时当执行完 jdbc 操作之后释放连接和资源等数据库操作的通用流程,所有的查询,更新等具体操作均是通过向 execute 方法传递合适的回调参数来使用 execute 方法中的数据库通用流程和资源,真正执行 jdbc 操作的方法由具体的回调内部类来实现。
4. JdbcTemplate 处理 PreparedStatement 的相关方法实现:
(1). 处理 PreparedStatement 的 execute 方法:
(2). PreparedStatement 的查询方法:
和 Statement 类似, JdbcTemplate 中 PreparedStatement 的查询方法也非常多,我们以最基本的查询方法源码为例分析其处理流程:
(3). PreparedStatement 的更新方法:
通过对 PreparedStatement 相关处理方法的源码分析,我们可以看到 PreparedStatement 和 Statement 的处理流程基本是相同的,不同之处在于 PreparedStatement 需要处理设置参数值的操作。
5. JdbcTemplate 处理 CallableStatement 的相关方法实现:
(1). 处理 CallableStatement 的 execute 方法:
(2). CallableStatement 的 call 方法:
通过上面对 CallableStatement 相关处理方法的源码分析我们可以看到, execute 方法基本和 Statement 和 PreparedStatement 是相同的,不同之处在于 CallableStatement 是通过 jdbc 调用数据库的存储过程,对于输入输出参数的组装,以及返回结果的处理方面有些特殊处理。
6. JdbcTemplate 通过 DataSourceUtils 获取数据库连接:
JdbcTemplate 的 execute 方法中通过 DataSourceUtils .getConnection(getDataSource()); 获取数据库连接,下面我们就分析 DataSourceUtils 类获取数据库连接的实现过程:
通过对 JdbcTemplate的源码分析,我们看到Spring只是将jdbc的一些常用操作封装,将通用的获取数据库连接、创建创建Statement、关闭资源释放连接等操作封装在不同种类的execute方法中,同时调用不同的回调处理Action来具体执行jdbc操作,对jdbc熟悉的人很容易看懂这部分源码,当然Spring还对jdbc进行了一些高级的封装和扩展,例如RowMapper将结果集转换为指定对象等,这部分有兴趣可以自己研究。
分享到:
相关推荐
"更新记录.docx"文件可能是项目开发过程中对SpringJdbcTemplate封装工具类的修改日志,记录了每次更新的功能改进、bug修复或性能优化等内容,这对于版本管理和问题排查非常有帮助。 通过上述分析,我们可以看到...
Spring JDBC Template是Spring框架中用于简化JDBC操作的一个核心组件,它是Spring对JDBC API的封装,旨在提供一个更加简洁、健壮且可测试的数据库访问层。在这个实例工程中,我们将深入探讨Spring JdbcTemplate的...
标签"源码"表明可能会涉及JdbcTemplate的内部实现,包括其如何封装JDBC API,以及如何处理异常和事务。源码分析有助于理解其工作原理,以便于进行更高效的定制或扩展。 标签"工具"可能指的是JdbcTemplate作为一个...
import org.springframework.jdbc.core.JdbcTemplate; public class OracleStoredProcedureCaller { private JdbcTemplate jdbcTemplate; public OracleStoredProcedureCaller(ApplicationContext ...
Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...
JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database Connectivity)的轻量级封装。通过使用JdbcTemplate,开发者可以避免编写大量的样板代码,如打开和关闭连接、处理结果集...
JdbcUtils使用指南JdbcUtils是JDBC的工具类,封装了JDBC连接获取,语句结构,资源释放等繁琐步骤,对外提供简洁的数据库查询和更新操作接口。使用前准备添加maven仓库地址< repositories> < repository> < id>byx-...
"spring封装jdbc查询"是Spring框架中的一个核心功能,旨在简化传统的JDBC(Java Database Connectivity)操作,提高代码的可读性和可维护性,同时减少数据库操作中的潜在错误。以下是对这个主题的详细阐述: 首先,...
JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。他帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC...
- JdbcTemplate相关的Java类:封装了SQL查询和操作,使用了Spring的事务管理。 这个Demo为学习和理解Struts、Spring和JdbcTemplate的集成提供了一个实际的例子,帮助开发者更好地掌握Java Web开发中的这些核心工具...
同时,Spring的JdbcTemplate提供了一种简便的JDBC使用方式,减少了代码中的样板代码,提高了开发效率。结合源码阅读和相关工具的使用,开发者可以深入理解这一集成过程,提升自身在Java Web开发领域的专业技能。
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` 配置完成后,即可在业务层中注入`JdbcTemplate`,并使用其提供的方法进行数据库操作。这种通过配置驱动的方式,使得代码...
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.rowset.ResultSetWrappingSqlRowSet; import org.springframework.jdbc.support.rowset.SqlRowSet; import org....
Spring的JdbcTemplate是Spring框架中的一个核心组件,用于简化数据库操作。它提供了一种模板方法模式,抽象出常见的JDBC代码,使得开发者可以避免编写大量的重复性代码,从而更加专注于业务逻辑。本项目是对Spring ...
为此,Spring提供了JDBC Template,它是对JDBC API的封装,简化了数据库操作,避免了资源泄露和手动处理异常等问题。使用JDBC Template,开发者可以编写更简洁、更健壮的数据库访问代码。 在这个项目中,...
1. `spring-jdbc.jar`:这是Spring JDBC模块的核心库,包含了JdbcTemplate类和其他相关的接口和类。这个jar包提供了对JDBC操作的封装,使得你可以方便地执行SQL语句并处理结果。 2. `spring-tx.jar`:Spring的事务...
综上所述,自封装的JdbcTemplate是一个简化JDBC操作的实用工具,它通过设计模式和面向对象编程,将复杂的数据库交互转化为简单的API调用,降低了开发难度,提高了代码质量。对于初学者而言,这是一个很好的学习和...
JdbcTemplate 是 Spring 框架中 org.springframework.jdbc.core 包提供的 JDBC 模板类,它是核心类,其他模板类都是基于它封装完成的。JdbcTemplate 类主要提供四类方法:execute 方法、update 方法及 batchUpdate ...
通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了许多常见的错误,比如资源关闭、SQL注入等问题。 Spring框架提供了多种模板类来处理不同的数据访问需求,例如...