Exception in thread "main" com.xjgs.exception.DaoException: java.sql.SQLException: 无效的列索引 Query: select dname,dcode from dept where dcode in(?) ORDER by dcode DESC Parameters: [0109000000, 0100000000]
at com.xjgs.dao.impl.JdbcTemplate.query(JdbcTemplate.java:76)
at com.xjgs.dao.impl.JdbcTemplate.queryForMapList(JdbcTemplate.java:90)
at com.xjgs.dao.impl.DeptDaoImol.findParentDepts(DeptDaoImol.java:62)
at com.xjgs.dao.impl.DeptDaoImol.main(DeptDaoImol.java:43)
Caused by: java.sql.SQLException: 无效的列索引 Query: select dname,dcode from dept where dcode in(?) ORDER by dcode DESC Parameters: [0109000000, 0100000000]
at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:359)
at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:240)
at com.xjgs.dao.impl.JdbcTemplate.query(JdbcTemplate.java:74)
... 3 more路过的帮个忙看看,是怎么回事?

解决方案 »

  1.   

    看这异常,好像是想把?绑定成[0109000000, 0100000000]
    这样似乎不行,楼主不如直接拼SQL。
    你要的是select dname,dcode from dept where dcode in(0109000000, 0100000000) ORDER by dcode DESC
      

  2.   

    也许你的dcode是字符串型 ,那可以针对(?)
    select dname,dcode from dept where dcode in('0109000000', '0100000000') ORDER by dcode DESC
      

  3.   

    绑定参数不对,in(?)只能绑一个参数。in(?,?)才是两个,问好和参数个数一致。
      

  4.   

    dcode-- decode 是oracle自带的一个函数,..........所以字段名,最好别用 decode