加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – org.springframework.jdbc.IncorrectResultSetColumnCou

发布时间:2020-12-14 23:56:22 所属栏目:Java 来源:网络整理
导读:我正在使用Jdbctemplate从db中检索Bean.这是我的方法. public Listtrackerv3Livedata getTrackerData() { return Listtrackerv3Livedata live = (Listtrackerv3Livedata) jdbcTemplate.queryForList("select * from mmitrackerv3_livedata where accountid =
我正在使用Jdbctemplate从db中检索Bean.这是我的方法.
public List<trackerv3Livedata>  getTrackerData() {
      return List<trackerv3Livedata> live = (List<trackerv3Livedata>) jdbcTemplate.queryForList("select * from mmitrackerv3_livedata where accountid =?",new Object[]{aid},trackerv3Livedata.class);
}

并且trackerv3Livedata bean结构正在跟随

public class trackerv3Livedata implements Serializable {


        /**
         * 
         */
        private static final long serialVersionUID = 2409168269491619888L;

        private int deviceid;
        private Long timestamp;
        private Mmitrackerv3Device mmitrackerv3Device;
        private Mmitrackerv3Account mmitrackerv3Account;
        private double latitude;
        private double longitude;
        private Double altitude;
        private Double speedkph;
        private Double heading;
        private Double gpssignal;
        private Integer geozoneid;
        private Double distancekm;
        private Double gsmsignal;
        private Double mainpower;
        private Integer laststatustime;
        private Double internalbattry;
        private Double temperature;
        private Short dinput1;
        private Short dinput2;
        private Short dinput3;
        private Short dinput4;
        private Short dinput5;
        private Short dinput6;
        private Short dinput7;
        private Short dinput8;
        private Short ainput1;
        private Short ainput2;
        private Short ainput3;
        private Short ainput4;
        private Short doutput1;
        private Short doutput2;
        private Short doutput3;
        private Short doutput4;

   /* There are Some Getter And Setter Method With Constructor */

}

在我的方案中,完全可能不会得到我的查询,所以我的问题是如何解决以下错误消息.

org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1,actual 38

在我看来,我应该回到null而不是抛出异常.我怎样才能解决这个问题?提前致谢.

解决方法

发生这种情况是因为您使用的queryForList方法不支持多列.从JdbcTemplate查看queryForList的实现
public <T> List<T> More ...queryForList(String sql,Object[] args,Class<T> elementType) throws DataAccessException 
{
    return query(sql,args,getSingleColumnRowMapper(elementType));
}

getsingleColumnRowMapper()方法创建一个新的RowMapper,用于从单个列读取结果对象.
您可以使用下面给出的方法.

public <T> List<T> query(String sql,RowMapper<T> rowMapper) throws DataAccessException        
 {
    return query(sql,new RowMapperResultSetExtractor<T>(rowMapper));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读