`
wanmeilingdu
  • 浏览: 24283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring——JdbcTemplate封装Jdbc

阅读更多

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将结果集转换为指定对象等,这部分有兴趣可以自己研究。

 

 

分享到:
评论

相关推荐

    SpringJdbcTemplate封装工具类

    "更新记录.docx"文件可能是项目开发过程中对SpringJdbcTemplate封装工具类的修改日志,记录了每次更新的功能改进、bug修复或性能优化等内容,这对于版本管理和问题排查非常有帮助。 通过上述分析,我们可以看到...

    spring-jdbcTemplate实例工程

    Spring JDBC Template是Spring框架中用于简化JDBC操作的一个核心组件,它是Spring对JDBC API的封装,旨在提供一个更加简洁、健壮且可测试的数据库访问层。在这个实例工程中,我们将深入探讨Spring JdbcTemplate的...

    jdbcTemplate-spring对jdbc的支持

    标签"源码"表明可能会涉及JdbcTemplate的内部实现,包括其如何封装JDBC API,以及如何处理异常和事务。源码分析有助于理解其工作原理,以便于进行更高效的定制或扩展。 标签"工具"可能指的是JdbcTemplate作为一个...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    import org.springframework.jdbc.core.JdbcTemplate; public class OracleStoredProcedureCaller { private JdbcTemplate jdbcTemplate; public OracleStoredProcedureCaller(ApplicationContext ...

    strut2+spring+springjdbctemplate做的简易登录系统

    Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...

    Spring 学习 JdbcTemplate,模板模式,回调

    JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database Connectivity)的轻量级封装。通过使用JdbcTemplate,开发者可以避免编写大量的样板代码,如打开和关闭连接、处理结果集...

    JdbcUtils:(仿Spring JdbcTemplate)JDBC工具类

    JdbcUtils使用指南JdbcUtils是JDBC的工具类,封装了JDBC连接获取,语句结构,资源释放等繁琐步骤,对外提供简洁的数据库查询和更新操作接口。使用前准备添加maven仓库地址< repositories> < repository> < id>byx-...

    spring封装jdbc查询

    "spring封装jdbc查询"是Spring框架中的一个核心功能,旨在简化传统的JDBC(Java Database Connectivity)操作,提高代码的可读性和可维护性,同时减少数据库操作中的潜在错误。以下是对这个主题的详细阐述: 首先,...

    struts+spring +jdbctemplate demo

    - JdbcTemplate相关的Java类:封装了SQL查询和操作,使用了Spring的事务管理。 这个Demo为学习和理解Struts、Spring和JdbcTemplate的集成提供了一个实际的例子,帮助开发者更好地掌握Java Web开发中的这些核心工具...

    Spring3MVC和JDBC的集成

    同时,Spring的JdbcTemplate提供了一种简便的JDBC使用方式,减少了代码中的样板代码,提高了开发效率。结合源码阅读和相关工具的使用,开发者可以深入理解这一集成过程,提升自身在Java Web开发领域的专业技能。

    Spring-JdbcTemplate

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` 配置完成后,即可在业务层中注入`JdbcTemplate`,并使用其提供的方法进行数据库操作。这种通过配置驱动的方式,使得代码...

    JDBCtemplate封装类的jar包.zip

    ​ JdbcTemplate是Spring对JDBC的封装,目的是使JDBC更加易于使用。JdbcTemplate是Spring的一部分。JdbcTemplate处理了资源的建立和释放。他帮助我们避免一些常见的错误,比如忘了总要关闭连接。他运行核心的JDBC...

    spring 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的JdbcTemplate是Spring框架中的一个核心组件,用于简化数据库操作。它提供了一种模板方法模式,抽象出常见的JDBC代码,使得开发者可以避免编写大量的重复性代码,从而更加专注于业务逻辑。本项目是对Spring ...

    前期项目 Spring+Spring MVC+JDBC Template 增删改查

    为此,Spring提供了JDBC Template,它是对JDBC API的封装,简化了数据库操作,避免了资源泄露和手动处理异常等问题。使用JDBC Template,开发者可以编写更简洁、更健壮的数据库访问代码。 在这个项目中,...

    spring5JdbcTemplate需要的jar

    1. `spring-jdbc.jar`:这是Spring JDBC模块的核心库,包含了JdbcTemplate类和其他相关的接口和类。这个jar包提供了对JDBC操作的封装,使得你可以方便地执行SQL语句并处理结果。 2. `spring-tx.jar`:Spring的事务...

    JdbcTemplate,自己封装的jdbc小框架

    综上所述,自封装的JdbcTemplate是一个简化JDBC操作的实用工具,它通过设计模式和面向对象编程,将复杂的数据库交互转化为简单的API调用,降低了开发难度,提高了代码质量。对于初学者而言,这是一个很好的学习和...

    Spring框架JdbcTemplate类中查询方法介绍

    JdbcTemplate 是 Spring 框架中 org.springframework.jdbc.core 包提供的 JDBC 模板类,它是核心类,其他模板类都是基于它封装完成的。JdbcTemplate 类主要提供四类方法:execute 方法、update 方法及 batchUpdate ...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了许多常见的错误,比如资源关闭、SQL注入等问题。 Spring框架提供了多种模板类来处理不同的数据访问需求,例如...

Global site tag (gtag.js) - Google Analytics