返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >基于mybatis查询结果映射不到对象的处理
  • 567
分享到

基于mybatis查询结果映射不到对象的处理

mybatis查询结果映射不到对象结果映射 2019-07-01 23:07:04 567人浏览
摘要

目录mybatis查询结果映射不到对象项目场景问题描述原因分析解决方案mybatis结果映射遇到的问题错误如下解决方案mybatis查询结果映射不到对象项目场景使用mybatis+springboot 进行数据库的数据查询操作,一直拿不到返回结果。问题描述后端

目录
  • mybatis查询结果映射不到对象
    • 项目场景
    • 问题描述
    • 原因分析
    • 解决方案
  • mybatis结果映射遇到的问题
    • 错误如下
    • 解决方案

mybatis查询结果映射不到对象

项目场景

使用mybatis+SpringBoot 进行数据库的数据查询操作,一直拿不到返回结果。

问题描述

后端dao层(service层调mapper,方法的返回结果一直null)代码一直空指针,

APP 中接收数据代码:


 //分类名称
        Integer bloGCateGoryId = blog.getBlogCategoryId();//这里有数据  22
        BlogCategory category = blogCategoryMapper.getCategoryById(blogCategoryId);//这里返回结果就一直null
        blog.setBlogCategoryName(category.getCategoryName());//导致这里一调用方法就报空指针了。

原因分析

仔细检查了代码(debug),controller层+ service层没问题,那问题坑定再dao层。检查xml文件,但发现xml文件中查询方法的sql代码写的没问题:


 <select id="getCategoryById" parameterType="java.lang.Integer" resultType="com.hhh.blog.entity.BlogCategory">
        SELECT
            category_id,
            category_name,
            category_icon,
            category_rank,
            create_time,
            is_deleted
        FROM
            tb_blog_category
        WHERE
            category_id = #{blogCategoryId}
    </select>

这里理论上没啥问题,但特么的就是数据库的数据映射不到对象中(实体类都是按照数据库数据对应的,只多不少)。

解决方案


resultType=“com.hhh.blog.entity.BlogCategory”

返回结果改成使用映射:


<select id="getBlogCategoryPage" resultMap="getBlogCategoryPageMap">

  <resultMap id="getBlogCategoryPageMap" type="com.hhh.blog.entity.BlogCategory">
        <id column="category_id" jdbcType="INTEGER" property="categoryId" />
        <result column="category_name" jdbcType="VARCHAR" property="categoryName" />
        <result column="category_icon" jdbcType="VARCHAR" property="categoryIcon" />
        <result column="category_rank" jdbcType="INTEGER" property="categoryRank" />
        <result column="is_deleted" jdbcType="TINYINT" property="isDeleted" />
        <result column="create_time" jdbcType="DATE" property="createTime" />
    </resultMap>

开启驼峰式命名匹配也可能解决上述问题。没试过。建议自己搞起来

mybatis结果映射遇到的问题

错误如下

org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in POJO.User matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String]
### The error may exist in Mapper/UserMapper
### The error may involve test.selectUserById
### The error occurred while handling results
### SQL: SELECT * FROM USER WHERE id=?
### Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in POJO.User matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String]

解决方案

最后,将User构造器中int改为Integer即可、

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程界。

--结束END--

本文标题: 基于mybatis查询结果映射不到对象的处理

本文链接: https://www.lsjlt.com/news/86.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mybatis关联查询结果集对象嵌套的具体使用
    在查询时经常出现一对多”的关系,所有会出现嵌套对象的情况,本文主要介绍了Mybatis关联查询结果集对象嵌套的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...
    203
    2023-04-02
    Mybatis关联查询对象嵌套 Mybatis对象嵌套关联查询
  • jdbc-处理查询结果集
    package com.cqust;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;//处 ...
    404
    2023-04-02
    jdbc-处理查询结果集
  • mysql导出查询结果
    mysql -u 用户名 -p 密码 -D 数据库名 -e "select * from tbl_user i join tbl_role a on a.id = i.user_id where a.id = 52 limit 10" > ...
    695
    2023-04-02
    mysql 导出 查询
  • mysql如何统计查询结果
    本篇内容介绍了“mysql如何统计查询结果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在mysql中,可以使 ...
    774
    2023-04-02
    mysql
  • JPA如何将查询结果转换为DTO对象
    这篇文章主要介绍了JPA如何将查询结果转换为DTO对象,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 ...
    544
    2023-04-02
    JPA查询结果 转换DTO对象 JPA查询 查询结果转DTO对象
  • SQL查询结果数据排序(二)
    > 本节讲述 对查询结果进行排序1 以指定的次序返回查询结果查询 用户表中所有用户的 姓名 年龄 地区,并按照年龄的升序排列,可以使用 order by 子句select user_name,user_age,user_province from t_user ...
    597
    2023-04-02
    SQL查询结果数据排序(二)
  • 使用索引来排序查询结果
    使用索引来排序查询结果在MongoDB中,排序操作可以通过从索引中按照索引顺序获取文档的方式来保证结果的有序性。如果查询计划器(planner)无法从索引中得到排序顺序,那么它将需要在内存中排序结果。相比于不使用索引的排序操作,使用索引会有 ...
    567
    2023-04-02
    index sort mongodb
  • mysql中怎么拼接查询结果
    mysql中怎么拼接查询结果,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 SELECT CONCAT("[", GROUP_CO ...
    523
    2023-04-02
    mysql
  • SQL如何限制查询结果
    小编给大家分享一下SQL如何限制查询结果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL查询结果只显示指定的行项目。举例:只显示查询结果的前5行。SQL SE ...
    715
    2023-04-02
    sql
  • python怎么获取sql查询结果
    使用python获取sql查询结果的方法:1.新建python项目;2.导入MySQLdb模块;3.使用MySQLdb.connect()方法创建数据库连接;4.使用cursor.execute()方法执行sql查询语句;5.使用curso ...
    340
    2023-04-02
    python
  • navicat premium如何导出查询结果
    本文小编为大家详细介绍“navicat premium如何导出查询结果”,内容详细,步骤清晰,细节处理妥当,希望这篇“navicat premium如何导出查询结果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。n ...
    455
    2023-04-02
    navicat premium
  • 关于MyBatis结果映射的实例总结
    结果集映射主要是为了解决属性名和类型名不一致的问题,下面这篇文章主要给大家介绍了关于MyBatis结果映射的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下 ...
    368
    2023-04-02
    mybatis结果集映射方式有几种 mybatis 映射 mybatis 结果集映射
  • MySQL查询数据之合并查询结果的案例
    小编给大家分享一下MySQL查询数据之合并查询结果的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!.利用union关键字,可以给出多条select语句,并将它 ...
    912
    2023-04-02
    mysql
  • @RequestBody时第二个字母大写,映射不到的解决
    这篇文章主要介绍了@RequestBody时第二个字母大写,映射不到的解决方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 ...
    149
    2023-04-02
    @RequestBody 字母大写 映射不到
  • 限制 Top-N 查询结果的记录
    在之前的版本中有多种间接手段来对顶部或底部记录获取 Top-N 查询结果。而在 12c中,通过新的 FETCH FIRST|NEXT|PERCENT 语句简化了这一过程并使其变得更为直接。从 EMP 表检索排名前 10 的工资记录SQL> ...
    236
    2023-04-02
    限制 查询结果 记录
  • navicat导出查询结果的操作步骤
    小编给大家分享一下navicat导出查询结果的操作步骤,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一步,打开Navicat并点击查询。第二步,新建查询。第三步 ...
    202
    2023-04-02
    navicat 操作步
  • CI查询构造器类(查询&生成查询结果)
    除了简单,使用查询构造器的另一个好处就是可以让你创建数据库独立的应用程序,这是因为查询语句是由每个独立的数据库适配器生成的。另外,由于系统会自动对数据进行转义,所以它还能提供更安全的查询。 注解:如果你想编写自己的查询语句,你可以在数据库配置文件中禁用这个类, ...
    184
    2023-04-02
    CI查询构造器类(查询&生成查询结果)
  • MySQL Workbench查询结果导出步骤
    本文主要给大家介绍MySQL Workbench查询结果导出步骤,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL Workbench查询结果导出步骤吧。 ...
    729
    2023-04-02
    mysql workbench bench
  • sqlServer根据月份循环查询结果信息
    -- 1.定义变量declare @n int,@dateTime varchar(255),@ymd varchar(255)-- 2.设置变量set @n=1set @dateTime='2016-'-- 3.设置循环1次数 ...
    169
    2023-04-02
    sqlserver sqlserv ver
热门问答
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作