JdbcTemplate queryForMap EmptyResultDataAccessException

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.

queryForMap方法返回的结果集大小必须是1,并且返回的map中,以列的名字作为key,获取的值作为value

利用spring 的getJdbcTemplate().queryForMap如果返回空集,就会报
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 的异常
try{
return getJdbcTemplate().queryForMap("select s.fb,s.pb,s.tu,s.qt,s.fbc,s.pbc,s.tt,s.ft,s.lt from gbc$view_user s where s.ud = ? and ad= ?", new Object[]{ud,ad});
}catch (EmptyResultDataAccessException e) {
return null;
}

解决方案 在queryForMap的地方 try catch 一下 即可。

时间: 2024-10-21 22:14:41

JdbcTemplate queryForMap EmptyResultDataAccessException的相关文章

jdbcTemplate 详细使用

RowMapper:用于将结果集每行数据转换为需要的类型,用户需实现方法mapRow(ResultSet rs, int rowNum)来完成将每行数据转换为相应的类型. RowCallbackHandler:用于处理ResultSet的每一行结果,用户需实现方法processRow(ResultSet rs)来完成处理,在该回调方法中无需执行rs.next(),该操作由JdbcTemplate来执行,用户只需按行获取数据然后处理即可. ResultSetExtractor:用于结果集数据提取,

java中使用jdbcTemplate的query方法举例与总结

在java中使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法 1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong() //查询数据记录的条数,返回一个int(数据范围较小)或者一个Long(数据范围较大)类型 String todayCountTopicsSql="SELECT count(*) FROM mcp_forum_post"; Integer todayCount=jdbcTemp

Spring JdbcTemplate 的使用与学习(转)

Spring JdbcTemplate 的使用与学习 JDBCTemplate 是SPRING 框架自带的一种对sql 语句查询的封装 ,封装非常完善,虽然与Hibernate比起来有一点麻烦,但是学号JDBCTemplate可以让我们用Spirngmvc框架去代替SSH,降低了 我们的学习成本.用起来也更加方便,测试代码如下,包括执行mysql 语句,分页,调用存储过程,返回对象数组,返回整数数组,返回单个对象等 package com.tz.jdbctemplate; import java

SpringMVC jdbcTemplate中queryForObject以及queryForList返回映射实体使用

使用SpringMVC搭建项目时,我打算直接使用SpringMVC的JDBC,如果引入Mybatis和Hibernate等ORM是感觉太过的麻烦,所以直接使用springframework.jdbc.SpringMVCJDBC提供了两个数据jdbc操作类,分别是:jdbcTemplate和namedParameterJdbcTemplate.他们都提供了非常多的方法,我就不写了(看源码).现在问题来了,我想从数据库中返回映射到实体该如何办呢? 现在我有表user表,需返回UserInfo实体,以

Spring Boot项目中使用jdbctemplate 操作MYSQL数据库

不废话,先来代码 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

JdbcTemplate进行查询

1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong() 例如:下面使用queryForInt()方法传回user表中的记录数: jdbcTemplate.queryForInt("select count(*) from user"); 2 jdbcTemplate.queryForObject() 本质上和 queryForInt() ,相同.返回都是单行单列一个数据.例如下例传回一个 String 对象: String

spring中的JdbcTemplate简单记录

JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修改.删除等语句:batchUpdate方法用于执行批处理相关语句: query方法及queryForXXX方法:用于执行查询相关语句: call方法:用于执行存储过程.函数相关语句. JdbcTemplate类支持的回调类: 预编译语句及存储过程创建回调:用于根据JdbcTemplate提供的连接创

(转)Spring JdbcTemplate 方法详解

Spring JdbcTemplate方法详解 文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修改.删除等语句:batchUpdate方法用于执行批处理相关语句: query方法及queryForXXX方法:用于执行查询相关语句

Spring的jdbcTemplate使用

使用jdbcTemplate查询数据的时候可以使用queryForXXX等方法.下面我们就一一解析一下: 1.jdbcTemplate.queryForInt()和jdbcTemplate.queryForLong()  --使用queryForInt返回user表中的记录数量,queryForInt搭配这样的sql可以在分页的时候计算总记录数 jdbcTemplate.queryForInt("select count(*) from user"); 2.jdbcTemplate.q