最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決JdbcTemplate查詢時報錯Incorrect column count: expected 1, actual 17問題

 更新時間:2026年01月13日 15:20:23   作者:五月天的尾巴  
文章描述了在使用JdbcTemplate執(zhí)行查詢時遇到的`IncorrectResultSetColumnCountException`錯誤,原因是`queryForList`方法返回的是`List<Map<String, Object>>`類型,不能直接轉(zhuǎn)換成對象,解決方法是將代碼修改為適當(dāng)?shù)牟樵兎绞?以避免錯誤

一、報錯內(nèi)容

報錯背景

使用JdbcTemplate執(zhí)行查詢時,報錯了,代碼及報錯內(nèi)容如下:

項目代碼

String sql = "select * from user";
List<User> userList = jdbcTemplate.queryForList(sql,User.class);

報錯信息

org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 5
    at org.springframework.jdbc.core.SingleColumnRowMapper.mapRow(SingleColumnRowMapper.java:92)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:93)
    at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:60)
    at org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:465)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:477)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:487)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:497)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:503)
    at spring.mybatis.test.MyTest.test01(MyTest.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)?

報錯原因

queryForList一般返回的是List<Map<>>類型,而不能直接轉(zhuǎn)換成對象。

List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from user");

二、解決方法

將代碼修改為以下內(nèi)容即可:

String sql = "select * from user";
List<User> userList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(User.class));

三、總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

长岛县| 安溪县| 海门市| 亚东县| 巨鹿县| 延川县| 兰州市| 团风县| 隆昌县| 桂林市| 淮南市| 汉中市| 开鲁县| 万年县| 海原县| 永登县| 信丰县| 苍山县| 翁牛特旗| 濮阳县| 南宁市| 东丰县| 阿瓦提县| 鸡东县| 蒲江县| 恩平市| 开原市| 清新县| 台东县| 三明市| 登封市| 砀山县| 连平县| 长泰县| 阿勒泰市| 甘德县| 广昌县| 乌兰浩特市| 拉萨市| 临颍县| 淮南市|