java – org. springframework. jdbc. Incorrectresultsetcolumncountexception: incorrect number of columns: expected 1, actual 38
•
Java
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
二维码