java – org. springframework. jdbc. Incorrectresultsetcolumncountexception: incorrect number of columns: expected 1, actual 38

I'm using jdbctemplate to retrieve beans from DB This is my way

public List<trackerv3Livedata>  getTrackerData() {
      return List<trackerv3Livedata> live = (List<trackerv3Livedata>) jdbcTemplate.queryForList("select * from mmitrackerv3_livedata where accountid =?",new Object[]{aid},trackerv3Livedata.class);
}

And the trackerv3livedata bean structure is following

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 */

}

In my solution, I may not get my query, so my problem is how to solve the following error message

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

In my opinion, I should go back to null instead of throwing an exception How can I solve this problem? Thank you in advance

Solution

This happens because the queryforlist method you are using does not support multiple columns Viewing the implementation of queryforlist from the jdbctemplate

public <T> List<T> More ...queryForList(String sql,Object[] args,Class<T> elementType) throws DataAccessException 
{
    return query(sql,args,getSingleColumnRowMapper(elementType));
}

The getsinglecolumnrowmapper () method creates a new rowmapper to read the result object from a single column You can use the methods given below

public <T> List<T> query(String sql,RowMapper<T> rowMapper) throws DataAccessException        
 {
    return query(sql,new RowMapperResultSetExtractor<T>(rowMapper));
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>