当前位置: 首页 > 知识库问答 >
问题:

jdbtemplet。qoeryForObject(String sql,RowMapper操作)

许明朗
2023-03-14

String sql="从id="id的客户中选择*;

Customer c =    jdbcTemplate.queryForObject(sql, BeanPropertyRowMapper.newInstance(Customers.class));

如果id存在,它将返回一个完美的对象。但是当id不存在时,我期望一个具有空属性的对象,但是它抛出异常。结果大小不正确:应为1,实际为0。

共有1个答案

韦阳晖
2023-03-14

使用 sql 聚合函数,如下所示:

String sql = "select max(*) from customers where id = "+id;

由于 id 应该是唯一的,因此如果未找到行,这将返回值或 null。

当然,另一种有效的可能性是捕捉和处理异常。

 类似资料:
  • JdbcTemplate使用org.springframework.jdbc.core.RowMapper《T》接口以逐行映射ResultSet的行。 此接口的实现执行将每行映射到结果对象的实际工作。 如果抛出任何抛出的SQLExceptions将被调用JdbcTemplate捕获并处理。 接口声明 (Interface Declaration) 以下是org.springframework.jd

  • JdbcTemplate使用org.springframework.jdbc.core.RowMapper《T》接口以逐行映射ResultSet的行。 此接口的实现执行将每行映射到结果对象的实际工作。 如果抛出任何抛出的SQLExceptions将被调用JdbcTemplate捕获并处理。 接口声明 (Interface Declaration) 以下是org.springframework.jd

  • 我正在创建一个简单的Web应用程序,并决定使用Spring JdbcTemplate类。但是现在我遇到了noClassDefFounderror:org/springframework/jdbc/core/rowmapper。 ControllerServlet.java ProductDaoImpl.java

  • 数据库中的每一行都是这样的 现在我想这样返回上面的数据 我将Spring的JdbcTemplate与行映射器一起使用,但我只能得到所有行的列表。由于我无法在RowMapper中维护我的主映射(我可以在RowMapper类中有一个静态映射吗?但我不希望它是静态的,因为这是一个webservice,后续调用可能会出错。),我只能选择获取该行列表,然后使用逻辑创建所需的集合。 我开始了解,但我找不到如何

  • 问题内容: 我正在研究Spring Core认证,并且对Spring如何处理JDBC查询有一些疑问: 因此,我知道可以根据希望获取的数据类型以多种方式从数据库表中获取数据: 1)查询 简单类型* (如int,long或String):我使用 jdbcTemplate 类的 queryForObject() 方法,类似这样: * 因此,要获取一个简单的对象作为int值,我使用 queryForObj

  • 我正在学习Spring核心认证,我对Spring如何处理JDBC查询有一些疑问: 因此,为了获得一个作为int值的简单对象,我使用queryForObject()方法,将sql stattment和我期望从该方法接收的对象类型传递给它。 好的,这很简单,我认为这是可以的。 2)查询输入到Map对象中的整个表行:因此,如果我不需要单个值(可以在表的特定行的单个列中,或者类似前面的示例),我可以使用q