`

使用 getJdbcTemplate().query方法出现error code [17004] 无效的列类型

    博客分类:
  • JAVA
阅读更多
今天在使用JdbcDaoSupport的以下方法
getJdbcTemplate().query(String sql,Object[] args,ResultSetExtractor rse)
时出现错误,看了很久才发现原来不过是一个低级错误
List<Object> args = new ArrayList<Object>();
        
        if (condition.getFdate() != null) {
            args.add(condition.getFdate());
        }
        if (condition.getChId() != null) {
            args.add(condition.getChId());
        }
      
        if(condition.getPostTypeCode() != null){
            args.add(condition.getPostTypeCode());
        }
        if (condition.getPlanType() != null) {
            args.add(condition.getPlanType());
        }
        return (List<RecData>) super
                .query(needSql, recData,args);

原因:未将args转化为Object[],因为args是List<Object>类型而非Objec[]类型,故弹出以下错误:
解决方法:将语句改为return (List<RecData>) super.query(needSql, recData,args.toArray());即可
2010-08-07 14:14:47,244 ERROR[com.dayee.wintalent.framework.web.interceptor.ExceptionInterceptor] - PreparedStatementCallback; uncategorized SQLException for SQL [SELECT T.F_DATE N_DATE,T.F_POST_TYPE_CODE N_POSTTYPECODE,T.F_CHANNEL_ID N_CHID,T1.F_CHANNEL_DID N_CHDID,T1.F_PLAN_TYPE N_PLANTYPE,T1.F_YEAR_MOTH N_YEARMONTH,T2.F_INSURANCE_CODE N_INSCODE,T2.F_PERSON_NUM N_PERNUM FROM WINTALENT3.T_RECRUITPLAN T,T_RECRUITPLAN_RELATION T1,T_RECRUITPLAN_INSURANCE T2 WHERE 1=1 AND T.F_DATE = ? AND T.F_CHANNEL_ID = ? AND T.F_POST_TYPE_CODE = ? AND T1.F_PLAN_TYPE = ? AND T1.F_REC_RELATION_ID=T.F_ID AND T2.F_REL_RELATION_ID=T1.F_ID ORDER BY T.F_CHANNEL_ID,T1.F_CHANNEL_DID ASC]; SQL state [null]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效的列类型
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT T.F_DATE N_DATE,T.F_POST_TYPE_CODE N_POSTTYPECODE,T.F_CHANNEL_ID N_CHID,T1.F_CHANNEL_DID N_CHDID,T1.F_PLAN_TYPE N_PLANTYPE,T1.F_YEAR_MOTH N_YEARMONTH,T2.F_INSURANCE_CODE N_INSCODE,T2.F_PERSON_NUM N_PERNUM FROM WINTALENT3.T_RECRUITPLAN T,T_RECRUITPLAN_RELATION T1,T_RECRUITPLAN_INSURANCE T2 WHERE 1=1 AND T.F_DATE = ? AND T.F_CHANNEL_ID = ? AND T.F_POST_TYPE_CODE = ? AND T1.F_PLAN_TYPE = ? AND T1.F_REC_RELATION_ID=T.F_ID AND T2.F_REL_RELATION_ID=T1.F_ID ORDER BY T.F_CHANNEL_ID,T1.F_CHANNEL_DID ASC]; SQL state [null]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效的列类型
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:641)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:670)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:678)
at com.dayee.wintalent.framework.dao.jdbc.MappingDaoImpl.query(MappingDaoImpl.java:104)
分享到:
评论
1 楼 a5193806 2016-06-27  
抓哇

相关推荐

    jdbcTemplate

    List&lt;User&gt; userList = getJdbcTemplate().query(sql, new BeanPropertyRowMapper(User.class), primaryKeyId); if(userList.size() == 0) { return null; } return userList.get(0); } @Override public ...

    Spring的getBean和JdbcTemplate

    NULL 博文链接:https://summerbell.iteye.com/blog/364702

    基于SpringJDBC的BaseDAO

    实现了简单的ORM增删改查。 &lt;bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" abstract="false" lazy-init="default" autowire="default" dependency-check="default"&gt; ...

    JdbcTemplateTool.zip

    Spring 出品的 JdbcTemplate 对于不想使用hibernate或者ibatis那样需要大量学习成本而且还想获得对象化的人来说是很好用的。但是 JdbcTemplate还是有很多不足之处或者说是缺点。比如你没法像hibernate那样直接传一个...

    springmvc-jdbcTemplate

    public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } /** * 获得SQL语句参数带名称的JDBC模版对象 * * @return * 创建日期:2012-12-19 * 修改说明: * @author wangk */ public ...

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

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

Global site tag (gtag.js) - Google Analytics