转:Spring JDBC(二)

 

转:http://xiao1227372602.iteye.com/blog/1627283

 

 

11.5.9. 使用SimpleJdbcCall返回的ResultSet/REF Cursor 
期望通过调用存储过程或者函数来返回ResultSet一直是一个问题。一些数据库在JDBC结果处理中返回结果集,而另外一些数据库则需要明确指定返回值的类型。 无论哪种方法,都需要在循环遍历结果集时,做出一些额外的工作,从而处理每一条记录。

通过SimpleJdbcCall,你可以使用returningResultSet方法,并定义一个RowMapper的实现类来处理特定的返回值。

当结果集在返回结果处理过程中没有被定义名称时,返回的结果集必须与定义的RowMapper的实现类指定的顺序保持一致。 而指定的名字也会被用作返回结果集中的名称。 

在这个例子中,我们将使用一个存储过程,它并不接收任何参数,返回t_actor表中的所有的行,下面是MySQL数据库中的存储过程源码: 

CREATE PROCEDURE read_all_actors() 
BEGIN 
SELECT a.id, a.first_name, a.last_name, a.birth_date FROM t_actor a; 
END; 
要调用这个存储过程,我们需要定义一个RowMapper的实现类。我们所使用的类遵循JavaBean的规范,所以我们可以使用ParameterizedBeanPropertyRowMapper作为实现类。 通过将相应的class类作为参数传入到newInstance方法中,我们可以创建这个实现类。 


public class JdbcActorDao implements ActorDao { 
    private SimpleJdbcTemplate simpleJdbcTemplate; 
    private SimpleJdbcCall procReadAllActors; 

    public void setDataSource(DataSource dataSource) { 
        this.simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource); 
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); 
        jdbcTemplate.setResultsMapCaseInsensitive(true); 
        this.procReadAllActors = 
                new SimpleJdbcCall(jdbcTemplate) 
                        .withProcedureName("read_all_actors") 
                        .returningResultSet("actors", 
                                ParameterizedBeanPropertyRowMapper.newInstance(Actor.class)); 
    } 

    public List getActorsList() { 
        Map m = procReadAllActors.execute(new HashMap<String, Object>(0)); 
        return (List) m.get("actors"); 
    } 

    //  ... additional methods 
} 
这个函数调用传入一个空的Map进入,因为这里不需要任何的参数传入。而函数调用所返回的结果集将返回的是Actors列表。 

11.6. 用Java对象来表达JDBC操作 
org.springframework.jdbc.object包下的类允许用户以更加 面向对象的方式去访问数据库。比如说,用户可以执行查询并返回一个list, 该list作为一个结果集将把从数据库中取出的列数据映射到业务对象的属性上。 用户也可以执行存储过程,以及运行更新、删除以及插入SQL语句。 

Note 
在许多Spring开发人员中间存在有一种观点,那就是下面将要提到的各种RDBMS操作类 (StoredProcedure类除外) 通常也可以直接使用JdbcTemplate相关的方法来替换。 相对于把一个查询操作封装成一个类而言,直接调用JdbcTemplate方法将更简单而且更容易理解。 

必须强调的一点是,这仅仅只是一种观点而已, 如果你认为你可以从直接使用RDBMS操作类中获取一些额外的好处,你不妨根据自己的需要和喜好进行不同的选择。 

Spring的JDBC详解 Spring的JDBC详解一、引言1.JDBC回顾传统应用程序开发中,进行JDBC编程是相当繁琐的,但却是我们入门必须掌握的技能。步骤如下: 1.获取JDBC连接 2.声明SQL 3.预编译SQL 4.执行SQL 5.处理结果集 6.释放结果集 7.释放Statement 8.提交事务 9.处理异常并回滚事务 10.释放JDBC连接缺点:1.冗长、重复 2.显示事务控制 3.每个步骤不可获取 4.显 阅读详情

相关推荐

Spring源码——JDBC

前言 内容主要参考自《Spring源码深度解析》一书,算是读书笔记或是原书的补充。进入正文后可能会引来各种不适,毕竟阅读源码是件极其痛苦的事情。 本文主要涉及书中第八章的部分,依照书中内容以及个人理解对Spring源码进行了注释,详见Github仓库:https://github.com/MrSorrow/spring-framework 本章内容基于之前所说的Spring IOC 和 AOP功能...

等一杯咖啡的博客 2242

Spring JDBC - Spring JDBC模版使用

Spring JDBC模版;Spring JDBC支持类

weixin_52937170的博客 1580

Spring 如何整合 JDBC的详细讲解

文章目录Spring 整合 JDBC一、搭建环境1、搭建项目2、添加jar包3、创建配置文件4、 创建实体类5、 创建持久层6、 创建业务层二、配置 Spring1、 配置解析 properties 文件1.1、 添加 db.properties 文件1.2、 修改 Spring 配置文件2、 配置数据源2.1、 什么是数据源?2.2、 添加数据源配置3、配置 JdbcTemplate4、 配置其他 Bean 对象的依赖注入4.1、 配置持久层依赖注入修改接口实现类修改 Spring 配置文件4.2、 配置

康康要加油的博客 4113

Spring Boot教程之四十七:Spring Boot ——JDBC

当我们使用 DriverManager 或 DataSource 时,使用 DataSource 打开的连接是不可重用的。对于每个客户端,如果打开一个新连接,数据库服务器的负担就会增加。Spring Boot 提供了多种使用数据库的方法(例如 – JdbcTemplate),而无需 JDBC 所需的繁琐工作。如果为了提高安全性需要对已编码的密码再次进行编码,则返回 true,否则返回 false。DataSource 对象从池中获取连接并创建到该连接的代理或逻辑连接,然后将代理连接感知到 Java。

潜洋的专栏 2037

224G PAM-4 通道的 PCB 和封装设计

该行业正在努力实现层厚非常低的 sub-Dk = 3 材料,以及更先进的加工,这将使封装和 PCB 中的透射电镜截止值更高。当回波损耗占主导地位时,我们基本上需要去除沿互连产生阻抗失配的任何元件,就像上面描述的更光滑的铜和更低的 Dk 值一样。第二个影响是传输线阻抗匹配在 56 GHz 范围内的非常高的频率下非常困难的主要原因之一,另一个因素是 Tx 或 Rx 封装/缓冲器中的寄生效应。由于 PCB 和封装中的长度刻度,这是 BGA 上的焊盘、过孔和球等小结构开始在输入阻抗中产生明显偏差的频率范围。

jkh920184196的博客 840

单细胞分析(19)—— 单细胞转录组基因集评分方法

在单细胞RNA测序(scRNA-seq)分析中,基因集评分(Gene Set Scoring)是一项关键任务,能帮助研究者识别细胞功能状态

阅读文献,记录学习笔记 2439

第 6 章: Spring 中的 JDBC

JDBC 的全称是 Java Database Connectivity,是一套面向关系型数据库的规范。虽然数据库各有不同,但这些数据库都提供了基于 JDBC 规范实现的 JDBC 驱动。开发者只需要面向 JDBC 接口编程,就能在很大程度上规避数据库差异带来的问题。Java 应用程序基本上是通过 JDBC 来连接并操作数据库的,哪怕我们使用了对象关系映射框架(例如 Hibernate),其底层也是用 JDBC 来与数据库进行交互的。 6.1 配置数据源 无论是简单的增删改查操作,还是复杂的数据分析任务,都

Binge毕设 2474

DiffusionDrive实战:如何用截断扩散模型3个月搞定自动驾驶轨迹规划(附代码)

本文详细介绍了如何利用DiffusionDrive截断扩散模型,在三个月内快速构建端到端的自动驾驶轨迹预测系统。内容涵盖从环境搭建、数据处理、模型架构解析到训练调参和推理优化的完整实战流程,并提供了关键代码示例,旨在帮助开发者高效实现高质量的自动驾驶轨迹规划。

weixin_35578748的博客 146

Spring JDBC与事务管理2:Spring JDBC二:Spring JDBC配置过程;

一:准备工作 1.准备数据库数据 (1)创建一个逻辑空间:springjdbctest; (2)导入数据 2.创建一maven工程 3.pom文件中引入依赖 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or...

小枯林的博客 743

基于Python的异步爬虫实战:高效抓取同花顺概念板块数据

本文将详细介绍如何使用Python最新异步爬虫技术(requests-html+aiohttp+selenium)高效抓取同花顺概念板块数据。内容涵盖:反爬机制破解、动态页面渲染处理、数据解析存储等完整流程,并提供可复用的高性能爬虫代码实现。高性能:异步并发处理,QPS可达50+高可用:完善的异常处理机制可扩展:支持分布式部署增加历史数据回溯功能集成机器学习识别验证码构建实时数据推送系统。

2201_76125261的博客 1535

【异常】Coze/扣子 Workflow 调用报 4200 错误深度解析

Coze API 的。

奶爸的编程之路,也就一周冷个三天 301

Spring JDBC配置与讲解

Spring Data JDBC 是 Spring Data 项目的一部分,它提供了一种简化的数据访问方式,用于与关系型数据库进行交互。与传统的 ORM 框架相比,Spring Data JDBC 更加轻量级,并且更注重直接映射数据库表结构和 SQL 查询的控制。它基于 JDBC 驱动程序,提供了一套简洁的 API 和注解,使开发人员能够通过简单的 Java 对象来表示数据库表,并通过自动生成的 SQL 语句执行常见的 CRUD 操作。

2301_78125917的博客 1084

硬件测试有哪些?

硬件单元测试(UT)是验证电路功能与可靠性的关键环节,主要分为电源测试和信号测试两大模块。电源测试需验证输入电压范围、高低压极限、短路保护等功能,确保供电稳定性;信号测试则聚焦时钟、总线、存储等接口的时序与完整性。测试要求统一标准、可追溯数据、问题闭环处理,通过开发与测试协同确保质量。规范的单元测试能有效降低后期集成风险,提升产品可靠性,其核心始终是在最小单元上确保稳健性,为系统级可靠性奠定基础。

硬核科技 245

Spring JDBC与事务管理1:Spring JDBC一:Spring JDBC简介;

说明: (1)本篇博客是介绍SpringJDBC的基本内容,不涉及具体的编码实现; (2)JDBC是java程序访问数据库的标准。那么,Spring生态体系,自然也对JDBC进行了支持和封装。 (3)开始了解【Spring JDBC与事务管理】之前,可以快速浏览下【MySQL基础】和【JDBC入门】中的内容; 目录 零:【Spring JDBC与事务管理】部分,内容介绍 一:Spring JDBC简介 二:已经有【Mybatis】了,为什么还需要【SpringJDBC】? 三:S...

小枯林的博客 642

公开 学生课堂行为数据集 SCB-Dataset: A Dataset for Detecting Student and Teacher Classroom Behavior

公开 学生课堂行为数据集 SCB-Dataset Student Classroom Behavior dataset

CSPhD-winston的博客 1万+

JEDEC JESD51-14 瞬态双界面测试方法详解

(瞬态双界面测试方法,用于测量具有单路径热流的半导体器件的结到壳热阻 RθJC,包括结到壳顶部 RθJCT 和结到壳底部 RθJCB)。该标准于 2010 年发布(版本 JESD51-14.1),旨在提供一种准确、可重复的瞬态方法来测量功率半导体器件(如 MOSFET、IGBT)的结到壳热阻(RthJC),取代传统的稳态测量方法(如 MIL-STD-883E METHOD 1012.1)。方法,通过比较两种不同热界面材料(TIM)下的瞬态温度响应曲线,提取 RthJC,而无需直接测量壳温(Tc)。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 606

【转】Spring Data JDBC - Reference Documentation

Spring Data JDBC - Reference Documentation Jens Schauder, Jay Bryant, Mark Paluch, Bastian Wilhelm Version 2.1.7, 2021-03-31 © 2018-2021 The original authors. 声明:本文转自Spring官网,如果网络不好登不上官网的小伙伴可以在这里看,如有翻译,链接会贴在原文链接下方 原文链接 Copies of this document may be made

紫枫伊的博客 4274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring JDBC—— 从零开始编写第一个Spring JDBC项目

一、SpringJDBC简短概述 Spring JDBC 提供了几种方法和数据库中相应的不同的类与接口。我将给出使用 JdbcTemplate 类框架的经典和最受欢迎的方法。这是管理所有数据库通信和异常处理的中央框架类。 Spring框架除了提供IOC与AOP核心功能外,同样提供了基于JDBC的数据访问功能,使得访问持久层数据更加方便。使用SpringJDBC环境,首先需要一套Spring整合JDBC的环境。 废话不多说,开始搭建自己的SpringJDBC项目吧! 注意:默认你是安装好MySQL和I

m0_46093414的博客 1486

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Spring JDBC

Spring JDBC 是 Spring 框架提供的简化 JDBC 操作的持久层技术,通过 JdbcTemplate 封装了传统 JDBC 的复杂操作。文章介绍了 Spring JDBC 的实现方式,核心是通过 JdbcTemplate 的 update() 方法执行转账业务逻辑,Spring 容器通过依赖注入自动组装数据源、JdbcTemplate 和 DAO 实现类,实现了各组件间的解耦。以及详细介绍了如何基于xml配置和注解的形式为 Spring JDBC 加入事务。

2401_84284464的博客 1223

Spring Data Jdbc和JdbcTemplate知识概括

spring对JDBC的支持之JdbcTemplate知识概括简介方法概述JDBC和JPA与spring data,原生jdbc的联系 简介 简介: 为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架. 作为Spring JDBC 框架的核心 JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法. 每个模板方法都能控制整个过程, 并允许覆盖过程中的特定任务.通过这种方式, 可以在尽可能保留灵活性的情况下, 将数据库存取

weixin_41005188的博客 1836

spring JDBC

转载于:https://www.cnblogs.com/ooooevan/p/5825392.html 先看一些定义: 在Spring JDBC模块中,所有的类可以被分到四个单独的包: 1、core 即核心包,它包含了JDBC的核心功能。此包内有很多重要的类,包括:JdbcTemplate类、SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedParameterJdb...

小灰狼与大白兔的博客 6149

Spring Data JDBC 详解

spring-data-jdbc的方便好用、可扩展性进一步显现出来了,如果想分页查询的话,Spring-data-jdbc提供了另外一个接口PagingAndSortingRepository,也可以使用@Query()注解支持原生的sql写入,参数使用过@Param()注入,接收的时候按照顺序接收,但要用 :id来标记接收对应的参数。简单总结就是: 没有拦截在和缓存,每次执行完的SQL得到的就是一个指定想要的完整实体,没有关联的查询或更新操作,没有session, 更简单、高效。

2509_94216991的博客 1062

Spring JDBC 【转】

JAVA数据库操作

milanleon的专栏 570

Spring中JDBC简介

2、由于JdbcTemplate中queryForObject方法,如果获取数据库结果集为空,会抛出异常,因此我们用queryForList方法执行数据库查询操作。3、定义UserDao及其实现类(关于UserDaoImpl类中JdbcTemplate自动装配:xml配置,因为需要dataSource对象,所以初始化在dataSourc之后)5、定义Pojo(接下来例子中,我们会用到lombok,无需设置pojo的setter,getter方法,在项目中引入lombok.jar即可。7、配置单元测试用例。

weixin_42883405的博客 1994
上一篇: eclipse 将jar与源码关联
下一篇: 显示包含html标签的字符串,没解析,处理办法
Brage_Lin
博客等级 码龄20年 5粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值