`

JDBCTemplate QueryForList returns wrong value

阅读更多

http://www.coderanch.com/t/559054/Spring/JDBCTemplate-QueryForList-returns-wrong

JDBCTemplate QueryForList returns wrong value

 

Hi all, 

I have the following code... 

view plainprint?
Note: Text content in the code blocks is automatically word-wrapped
  1. String GET_AGENTS_FOR_CYCLE = "select AGENTSURROGATECODE from SETTLEMENT.AGENT_DETAILS where CYCLE = ?";  
  2. List agentsList = jdbcTemplate.queryForList(GET_AGENTS_FOR_CYCLE,  
  3.                 new Object [] {getCycle()});  
  4. Iterator agentItr = agentsList.iterator();  
  5. while (agentItr.hasNext())  
  6.         {  
  7.             String agentCode = (String) agentItr.next();  


Right now this is failing with the exception... 

view plainprint?
Note: Text content in the code blocks is automatically word-wrapped
  1. java.lang.ClassCastException: org.springframework.util.LinkedCaseInsensitiveMap cannot be cast to java.lang.String  
  2.     at com.wu.interstream.advising.loaders.AgentsRetriever.execute(AgentsRetriever.java:54)  


So it looks like AgentList is made up of LinkedCaseInsensitiveMap objects instead of String objects. Why is this? 

Thanks in advance for any help.

解决:

If the query returns more than one column the List is made up of Map elements. 

You might want to try 
String agentCode = (String)((Map)agentItr.next()).get("AGENTSURROGATECODE");

 
分享到:
评论

相关推荐

    Java 使用JdbcTemplate 中的queryForList发生错误解决办法

    "Java 使用JdbcTemplate 中的queryForList解决错误方法详解" Java 是一门广泛使用的编程语言,在 Java 中有多种方式来执行数据库查询操作,其中 JdbcTemplate 是 Spring 框架提供的一种简洁易用的数据库操作工具。...

    使用jdbcTemplate查询返回自定义对象集合代码示例

    首先,我们可以使用JdbcTemplate的queryForList()方法来查询数据库,并将查询结果转换为自定义对象集合。下面是一个示例代码: ```java public List<UserInfo> findAll() { String sql = "SELECT * FROM user_info...

    spring自带的jdbcTemplate查询、插入预编译使用

    在使用`jdbcTemplate`进行预编译查询时,我们通常会使用`query()`或`queryForList()`方法。例如: ```java String sql = "SELECT * FROM table WHERE id = ?"; Object[] params = {1}; List<MyObject> result = ...

    spring mvc注解jdbctemplate

    然后,我们定义了一个处理GET请求的方法`queryData()`,其中使用了JdbcTemplate的`queryForList()`方法执行SQL查询并返回结果。 JdbcTemplate提供了一系列的便捷方法,如`update()`, `queryForObject()`, `...

    打印JdbcTemplate执行sql

    DEBUG org.springframework.jdbc.core.JdbcTemplate - Setting SQL parameter value: 1, java.lang.Integer ``` 3. **自定义日志**:如果你需要更细粒度的控制,比如格式化输出或者添加额外的信息,可以自定义`...

    spring jdbcTemplate

    JdbcTemplate提供了多种方法来执行SQL语句,如`queryForList`, `queryForObject`, `update`等。例如,我们可以用以下方式查询图书信息: ```java List<Book> books = jdbcTemplate.query( "SELECT * FROM book", ...

    spring的jdbcTemplate小案例

    return jdbcTemplate.queryForList(sql, User.class); } public void addUser(User user) { String sql = "INSERT INTO users(name, email) VALUES (?, ?)"; jdbcTemplate.update(sql, user.getName(), user.get...

    spring jdbcTemplate 注入到servlet

    List, Object>> result = jdbcTemplate.queryForList(sql); // 处理结果... } ``` 通过这种方式,`Spring JdbcTemplate`使得在Servlet中进行数据库操作变得更加简单和高效。它的主要优点包括: - **异常处理**...

    Spring的JDBCTemplate

    List, Object>> result = jdbcTemplate.queryForList("SELECT * FROM users WHERE age > ?", new Object[]{25}); ``` 在这个例子中,`queryForList`方法执行SQL查询,并将结果返回为一个`Map`列表。 ##### 3.3 ...

    JdbcTemplate使用.doc

    `JdbcTemplate`提供了大量预定义的方法,如`update()`, `query()`, `queryForObject()`, `queryForList()`等,可以根据不同的SQL查询类型选择合适的方法。它还支持参数绑定,可以防止SQL注入攻击,例如使用`?`作为...

    JdbcTemplate实例

    例如,`List, Object>> rows = jdbcTemplate.queryForList("select * from user where id=" + id.intValue());`会返回id匹配的用户的所有列数据。 3. **自定义结果处理**: - **RowCallbackHandler**接口:当需要...

    配置JdbcTemplate

    JdbcTemplate提供了多种方法来执行SQL语句,如`update()`, `queryForInt()`, `queryForList()`等。此外,还可以使用命名参数、存储过程、事务管理等功能,使得数据库操作更加灵活。 总结,配置JdbcTemplate涉及...

    jdbcTemplate简单使用

    List<User> users = jdbcTemplate.queryForList("SELECT * FROM users", User.class); int rowsAffected = jdbcTemplate.update("INSERT INTO users(name, email) VALUES (?, ?)", "John", "john@example.com"); ```...

    JdbcTemplate查询

    List, Object>> rows = jdbcTemplate.queryForList("SELECT * FROM user"); for (int i = 0; i (); i++) { Map, Object> userMap = rows.get(i); System.out.println(userMap.get("id")); System.out.println...

    jdbcTemplate

    5. **查询结果处理**:`JdbcTemplate`提供了多种方法来处理查询结果,如`queryForList`、`queryForObject`等,可以方便地将结果映射到Java对象。 6. **回调接口**:通过`PreparedStatementCreator`和`...

    Spring JdbcTemplate

    例如,`queryForList(String sql, Class<T> elementType)`方法用于执行SQL查询并返回一个对象列表,`update(String sql, Object... args)`方法则用于执行SQL更新操作。 **2. BaseDao和BaseDaoImpl:** 在提供的文件...

    spring-jdbcTemplate实例工程

    )和命名参数(如::name),并且提供了ValueObject(如:PreparedStatementCreator)进行复杂参数的设置。 3. **RowMapper**:这是将结果集转换为Java对象的接口,用户可以根据实际需求实现该接口,将每一行数据...

    Spring JdbcTemplate 常用方法整理

    3. `queryForList(String sql, Class<T> elementType, Object... args)`:执行查询并返回一个包含结果的List。`elementType`指定List元素类型。 4. `queryForObject(String sql, RowMapper<T> rowMapper, Object......

    4.Spring中的JdbcTemplate,Spring中的的事务,

    ### Spring中的JdbcTemplate #### JdbcTemplate概述 JdbcTemplate是Spring框架提供的一种用于简化JDBC编程的对象。通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了...

Global site tag (gtag.js) - Google Analytics