jdbcTemplate queryForMap与queryForList区别

关于jdbcTemplate.queryForMap报错异常 问题很头疼 报错为org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 这样查询返回null是有异常的,查询有数据不会报错,没数据就会报错 public Map<String, Object> queryNewAlarm(Integ... 阅读详情

前言

  在我们用java程序和数据库进行数据交换时,在数据访问层(也就是常用的dao层)
  常常会用到orm( Object Relational Mapping) 框架 如 mybatis(半自动) ,hibernate
  用的工具会有 通用Mapper ,sprigdataJpa 以及原生的jdbcTemplate

为什么要用这个jdbcTemplate

1.首先项目里面肯定会有选一种orm 框架,有时避免不了和原生一起用
2.原生的用起来挺方便的
3.多表联查或者复杂查询时,原生的执行效率还是有优势的

如何获取

1.spring进行了封装可以直接注入
2.可以自己封装
3.从工厂容器中去

常用方法

1.jdbcTemplate.queryForMap(String sql)
注意点 :
a. sql 必须能查到数据,不能为 null
b. sql 必须能查到数据, 而且仅有一条
c. 使用时最好捕捉一下异常,try catch
d. 返回取值的key, 就是查询列的字段
example:
String sql = " select a.name as title ,a.age ,a.money from table a";
Map<String,Object> dataMap = jdbcTemplate.queryForMap(sql);
取name值时 : dataMap .get(“title”); 非原字段名
取age值时 : dataMap.get(“age”); 此时取的是原字段
e. 取值是最好是用小写,因为有的项目支持的数据种类多,写的有适配,如 mysql,oracle,plsql,Dm(国产),用大写会导致程序报错

2.jdbcTemplate.queryForList(String sql)
个人是比较倾向于使用这个查这个方法,它查出来是一个集合,没有什么要求,取值前只需要对查询List.size()进行简单的判断即可,然后循环遍历,取值如上。

     谢谢,欢迎指教。
手把手教你用CODESYS将旧笔记本改造成软PLC(含证书配置避坑指南) 本文提供了一份详尽的指南,教你如何利用CODESYS平台将闲置旧笔记本改造为一台功能完整的软PLC。内容涵盖从硬件评估、系统实时性优化、软件安装与驱动配置,到关键的证书授权管理避坑指南,旨在帮助自动化工程师和爱好者低成本搭建稳定可靠的学习与开发平台。 阅读详情

相关推荐

基于Python实现基于遥感指数的水体提取

基于Python实现基于遥感指数的水体提取

gis收藏家的博客 6149

Spring JdbcTemplate.queryForMap()

在本文中,我们将学习JdbcTemplate.queryForMap使用方法。它执行给定的SQL,将查询与给定的参数绑定。查询应为单行查询。此方法返回结果为Map。JdbcTemplate.queryForMap期望参数如下。执行静态 SQL 并返回Map。此方法使用 JDBC Statement,而不是 PreparedStatement。查询应为单行查询。结果将映射到 Map。列名是Map的键和列值是该Map键的值。

allway2的博客 6299

Linux CentOS 8系统离线升级内核版本

CentOS 8操作系统离线场景下升级内核版本

WQwinter的博客 3237

JDBC Template

       JDBC Template是Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发        使用jdbc的步骤如下: 创建JdbcTemplate对象。依赖于数据源DataSource JdbcTemplate template = new JdbcTemplate(ds); 2. 调用JdbcTemp

qq_38721353的博客 746

仿真每日一练 | Workbench下薄板疲劳分析

今天给大家介绍Workbench下薄板疲劳分析,采用稳态分析模块进行评估。完成求解后,插入疲劳工具,同时插入对应的寿命进行查看,如图7和图8所示。采用稳态分析模块,导入几何模型,效果如图1。添加固定约束与扭矩,同时添加转速如图4所示。主要包括7要素,对应的类型见图2。求解完成后查看应力,如图6所示。1-1-3、有限元系统模型构建。1-2-1、加载条件/边界条件。1-1-1、几何模型构建。1-1-2、材料定义。1-2-2、求解设置。1-3-1、查看结果。1-3-2、评估结果。1-3-3、修正结果。

ansysxuexizhe的博客 1071

OBD诊断协议:OBDⅡ (SAE J1979) 和 OBDonUDS (SAE J1979-2) 和ZEV OBD技术架构的详细对比

摘要:文章对比了2025年最新OBD技术标准(SAEJ1979系列)的三大架构:传统OBD-II(已淘汰)、OBDonUDS(燃油/混动车)和ZEVOBD(新能源车)。核心发现:1)OBDonUDS与ZEVOBD共享UDS协议栈和DoIP通信标准,仅应用层数据(DID/DTC)不同;2)物理层统一为CAN+以太网,支持远程诊断和OTA;3)诊断工具需同时兼容J1979-2/3数据库。技术演进呈现"协议统一化、数据专用化"趋势,2027年后所有新车将强制采用新标准。

m0_56482679的博客 2397

Jdbctemplate中query、queryForObject、queryForList、queryForMap方法使用

程序猿的成长其实是很苦逼的,怎么说呢,就是一路打怪升级,当遇到好多怪都打不动了,那么也就无法升级了;或者说就是不断入坑出坑的过程,一旦一个或多个坑都无法跳出来,也就over了。 最近工作中这个jdbctemplate中方法的使用问题就遇到过2次基本相同的问题,一次是自己遇到,一次是同事问我时;md,还是赶快跳出这个坑吧,只能认真研究总结下了。 Jdbctemplate...

dhklsl的专栏 1万+

泛微E9统一待办接口说明

需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/request/ViewRequestOS.jsp?需要第三方表单,在提交自己的流程后,通过【window.location.href=‘oa地址/workflow/workflow/WfRefreshList.jsp’】通过中转页面与第三方系统对接,按照第三系统的验证方式开发中转页面中的程序。C)第三方根据相同的数据加密,结果一致就认证成功,打开流程。优点:可以灵活的对接各个系统。

泛微二次开发后端知识总结 6410

JdbcTemplate的queryForMap方法报错解析

JdbcTemplate的queryForMap方法报错queryForMap方法使用不当,就会出错,使用方式如下: The queryForMap method in JdbcTemplate only expects a single row to be returned, The return value for this method will be a map of column names to column values for the single result row. que...

后青春的诗 2764

汽车行业OTD业务模式入门学习

本文是在学习彭俊松老师的《汽车行业整车订单交付系统》后,对于OTD理解的一些摘录,供诸位参考学习。

qq_40664711的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

JdbcTemplate 、NamedParameterJdbcTemplate、SimpleJdbcTemplate的区别,有需要的朋友可以参考下。

JdbcTemplate 、NamedParameterJdbcTemplate、SimpleJdbcTemplate的区别,有需要的朋友可以参考下。几种常用的jdbctemplate

Z_T_T的博客 771

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jdbcTemplate中的queryForList()与queryForMap()

前言 现在的项目开发中对于项目中DAO层的操作一般都是使用ORM开发框架,例如MyBatis或者hibernate等。虽然这些全自动半自动的ORM框架为操作DAO层提供了更加便捷的接口,但是原生的sql操作在一些项目中还是运用广泛。 特别是一些需要连表查询或者是定制化sql语句的操作中原生的sql运用尤其广泛。 jdbcTemplate作为一个原生的sql操作模板,使用较为方便。 但是在今天使用的过程中踩了一个坑,和大家分享一下! 使用场景分析 **需求:**后台有一张表,记录了每天的客户浏览量,标识id,

九岁ya的博客 7206

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Spring JDBC Template ,以及使用preparedstatements传参数

JdbcTemplate 被定义为一个Spring 管理的bean 该bean 是线程安全的,并且可以被不同的数据访问对象所共享,因此被定义为单利,JdbcTemplate 的bean主要依赖项为一个DataSource 对象, 所以,需要把创建的dataSource 对象注入到JdbcTemplat spring 将数据访问的样本代码抽象到模板类中 spring 为JDBC 提供了两种类型...

Sean的博客 9194

文章标题

jdbcTemplate1,jdbcTemplate针对数据查询提供了多个重载的模板方法: Int queryForInt(String sql) Int queryForInt(String sql,Object[] args) Long queryForLong(String sql) Long queryForLong(String sql,Object[] args) Object

wenhui的博客 262

mysql数据库的了解和使用

mysql数据库的了解和使用

xgq_111的博客 2030

JdbcTemplate的queryForMap方法报错

JdbcTemplate的queryForMap方法报错 queryForMap方法使用不当,就会出错,使用方式如下: The queryForMap method in JdbcTemplate only expects a single row to be returned, The return value for this method will be a map of col...

z69183787的专栏 3万+

Mybatis详解

一、Mybatis概述 SpkMapConfig.XML的核心配置文件 MYSQL语句复习 JDBC的执行流程 queryForObject返回StrIng public <T> queryForObject(String sql,Class<T> requiredType)//执行查询语句,返回一个指定类型的数据 public stati...

风一般的男子·小亮仔 1037

SpringBoot高级篇JdbcTemplate之数据查询上篇

前面一篇介绍如何使用JdbcTemplate实现插入数据,接下来进入实际业务中,最常见的查询篇。由于查询的姿势实在太多,对内容进行了拆分,本篇主要介绍几个基本的使用姿势 queryForMap queryForList queryForObject I. 环境准备 环境依然借助前面一篇的配置,链接如: 190407-SpringBoot高级篇JdbcTemplate之数据插入使用姿势详解 或...

weixin_33920401的博客 925

java jdbc 传参_java语言,jdbcTemplate.queryForMap查询,如何传入两个参数到SQL中

展开全部1、使用Map jdbcTemplate.queryForMap查询,其返回结果e5a48de588b63231313335323631343130323136353331333431356638必须有且只有1个map值,否则会抛出异常。若抛出异常,则肯定不会得到返回值。例如“控制台提示错误Incorrectresultsize:expected1,actual 0”。问题原...

weixin_35817272的博客 1943

java中使用JDBC或者C3P0时,Query,QueryForObject,QueryForMap,QueryForList的用法

在 Java 中使用 JDBC 连接数据库时,queryForList 是 Spring Framework 中 JdbcTemplate 类的一个方法,用于执行查询语句并将结果封装为一个列表(List)的形式返回。这个方法通常用于查询多行记录,并将每行记录的数据以 Map 的形式存储在列表中。query 方法:执行查询并将结果映射到自定义对象中,通常需要实现 RowMapper 接口来进行结果映射。queryForObject 方法:执行查询并返回单个对象,如果结果不唯一或为空会抛出异常。

m0_56666878的博客 1521

jdbc map获取keys_如何使用JDBCTemplate.queryForMap获取Map数据

How to load data from JDBCTemplate.queryForMap() and it returns the Map Interface.How the maintained the query data internally in map.I trying to load but i got below exception i.e., org.springframew...

weixin_39829073的博客 450

iBatis查询API

先说点基础的内容,iBatis并不是真正意义上的ORM,官方文档中称其为dataMapper,是数据映射器,也就是一种映射查询工具。iBatis不是万能的,在某些它不能处理的问题时,不能放弃使用JDBC API,那才是根本中的根本。 在iBatis中,建议使用JavaBean,因为我们是面向对象的设计,那么在系统设计时肯定创建了很多刻画具体对象的类,使用JavaBean...

各研发管理 448

JdbcTemplate 使用总结

主要介绍几种查询的特殊情况 jdbcTemplate.queryForList 如果没有查找到记录 ,会返回一个 size=0 的空集合 , 这主要是因为 在处理查询结果时 List results = this.rowsExpected > 0 ? new ArrayList(this.rowsExpected) : new ArrayList(); 2.jdbcTemplate.queryForMap 必须返回一条记录 ,未查找到记录 或者 查找到多条记录 ,都会报错 int siz

阿狸来了,哇咔咔 906

【JavaWeb】73:JdbcTemplate详细解析

JdbcTemplate竟然只能算是江南七怪级别的

刘小爱的博客 655
上一篇: get 加body体传参
下一篇: Oracle 修改有值字段属性
WindwardBird
博客等级 码龄7年 19粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值