概述

优质
小牛编辑
133浏览
2023-12-01

在使用普通旧JDBC处理数据库时,编写不必要的代码来处理异常,打开和关闭数据库连接等变得很麻烦。但是,Spring JDBC Framework从打开连接,准备和开始处理所有低级细节。执行SQL语句,处理异常,处理事务,最后关闭连接。

您所做的只是定义连接参数并指定要执行的SQL语句,并在从数据库获取数据时为每次迭代执行所需的工作。

Spring JDBC提供了几种方法和相应的不同类来与数据库进行交互。 在本教程中,我们将采用经典和最流行的方法,该方法使用框架的JDBC Template类。 这是管理所有数据库通信和异常处理的中央框架类。

JDBC模板类

JDBC Template类执行SQL查询,更新语句和存储过程调用,对ResultSet执行迭代并提取返回的参数值。 它还捕获JDBC异常并将它们转换为 org.springframework.dao 包中定义的通用的,更具信息性的异常层次结构。

配置后,JDBC Template类的实例是线程安全的。 因此,您可以配置JDBC模板的单个实例,然后将此共享引用安全地注入多个DAO。

使用JDBC Template类时的一个常见做法是在Spring配置文件中配置DataSource,然后将共享DataSource bean依赖注入到DAO类中。 JDBC模板是在DataSource的setter中创建的。

Data Access Object (DAO)

DAO代表Data Access Object ,它通常用于数据库交互。 存在DAO以提供向数据库读取和写入数据的方法,并且它们应该通过接口公开此功能,应用程序的其余部分将通过该接口访问它们。

Spring中的数据访问对象(DAO)支持使得以一致的方式使用JDBC,Hibernate,JPA或JDO等数据访问技术变得容易。

最后更新:

类似资料

  • 我正在尝试使用两个数据源与我的SpringBoot应用程序,但无法获得第二个数据源自动连接。我尝试过很多事情,但这是我最接近的一次: 我的Yaml文件: 这是我到目前为止最接近的一次。我之所以说它是最接近的,是因为如果我删除@qualifier,那么我的两个dao方法实际上都可以工作,假设SECOND_SELECT语句对于我的DB1是有效的SQL语句。当我为非主datasouce输入@Qualif

  • 以下YSQL留档: doc最后一段提到: ...有时,使用SELECT LAST_INSERT_ID()查询可能会很棘手,因为该函数的值的作用域是连接。因此,如果在同一个连接上发生其他查询,该值将被覆盖。另一方面,getGeneratedKeys()方法的作用域由语句实例确定,因此即使其他查询发生在同一连接上,但不在同一语句实例上,也可以使用它。 由于我在一个完全分布式的环境中工作,所以对我来说,

  • 最近,我在appengine Paas上创建了一个java应用程序(名称为jd-app.com)。但是一个非常通用的SpringJDBC应用程序无法运行,因为它对MySQL的“select*from user”这样的简单查询显示异常。这些文件来自http://www.beingjavaguys.com 根本原因 ...org.springframework.jdbc.support.abstrac

  • 概述 国际化和本地化的目的就是让一个网站应用能做到根据用户语种和指定格式的不同而提供不同的内容。 Django 对文本翻译, 日期、时间和数字的格式化,以及时区提供了完善的支持。 实际上,Django做了两件事: 由开发者和模板作者指定应用的哪些部分应该翻译,或是根据本地语种和文化进行相应的格式化。 根据用户的偏好设置,使用钩子将web应用本地化。 很显然,翻译取决于用户所选语言,而格式化通常取决

  • 虽然Django 满满的便捷性让Web 开发人员活得轻松一些,但是如果不能轻松地部署你的网站,这些工具还是没有什么用处。Django 起初,易于部署就是一个主要的目标。有许多优秀的方法可以轻松地来部署Django: 如何使用WSGI 部署 部署的检查清单 FastCGI 的支持已经废弃并将在Django 1.9 中删除。 如何使用FastCGI、SCGI 和AJP 部署Django 如果你是部署D

  • 本书概述 进程的概念大家都很熟悉,但你是否能准确说出僵尸进程的含义呢?还有 COW(Copy On Write)、Flock(File Lock)、Epoll 和 Namespace 的概念又是否了解过呢? 本书汇集了进程方方面面的基础知识,加上编程实例,保证阅读后能自如地回答以上问题,在项目开发中对进程的优化也有更深的理解。 本书架构 本书按循序渐进的方式介绍进程的基础概念和拓展知识,主要涵盖以