使用Mybatis时无法将查询结果存进实体类如何解决

  介绍

这篇文章给大家介绍使用Mybatis时无法将查询结果存进实体类如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>问题描述

使用Mybatis查询得到实体类

<强>表定义如下

成员ID成员姓名member_idmember_name

<强>对应的实体类如下

public  class  Member  {   private 才能;Integer  memberId;   private 才能;String  memberName;//,才能省略getter和setter   }

<>强对应的映射。xml如下

& lt; select  id=皊electMemberByMemberName", resultType=癕ember"比;   SELECT 才能;*   ,得到成员   WHERE 才能;member_name =, # {memberName}   & lt;/select>

<强>通过以下代码得到的成员居然是null,这是为什么呢?

=

成员成员memberMapper.selectMemberByMemberName (memberName);

在日志我启用了调试模式,发现查询结果集是有返回数据的,但是写不进去成员实体类中,最后发现是因为数据库与Java命名的规范是不一样的,需要转换,Mybatis也提供了相对应的驼峰命名转换法。

例如member_id对应memberId,但是默认是不启用的,所以需要手动启动。

<>强解决方法

如果使用Mybatis配置文件,则可以按如下配置:

& lt; ? xml  version=?.0“,编码=癠TF-8" ?比;   & lt; ! DOCTYPE  configuration  PUBLIC “-//mybatis.org//DTD  Config  3.0//EN"   ,,,“http://mybatis.org/dtd/mybatis-3-config.dtd"比;      & lt; configuration>   & lt;才能settings>   ,,,& lt; !——,开启驼峰命名转换,——比;   ,,,& lt; setting  name=癶ttps://www.yisu.com/zixun/mapUnderscoreToCamelCase",价值=" true "/>      

如果是springboot集成的,则可以做如下配置

mybatis:   ,配置:   mapUnderscoreToCamelCase才能:true  #,开启驼峰命名转换法

按照以上配置后重新访问则可以获得一个查询后的实体类。

<强>补充知识: <强> mybatis查询参数中既有实体类参数又有基本类型参数解决方案

这个方法真实有效,直接上代码

<强> DAO中的查询方法

公共LogisticNodes findFirstNode (

@Param (“ln")LogisticNodes ln, @Param (“stringId")字符串stringId);

第一个参数为实体类,需要加上@param()注解

<强> xml中的写法

选择   ,,,,,& lt; include  refid=發ogisticNodesColumns"/比;   从,,,   ,,,,order_logistic_nodes    ,,,& lt; where>,,,,,,,,,,,   ,,,,,,,& lt; if 测试=發n.id  !=, null 以及ln.id  !=& # 39; & # 39;“比;   ,,,,,,,,,,以及a.id =, # {ln.id jdbcType=VARCHAR}   ,,,,,,,& lt;/if>   ,,,,,,,& lt; if 测试=發n.nodeName  !=, null 以及ln.nodeName  !=& # 39; & # 39;“比;   ,,,,,,,,,,以及a.node_name =, # {ln.nodeName jdbcType=VARCHAR}   ,,,,,,,& lt;/if>   ,,,,,,,& lt; if 测试=發n.nodeSort  !=, null"比;   ,,,,,,,,,,以及a.node_sort =, # {ln.nodeSort jdbcType=小数}   ,,,,,,,& lt;/if>   ,,,& lt;/where>   ,,,   ,,,,,a.logistic_type 拷贝(   ,,,,,,,选择   ,,,,,,,,s.logistic_type   ,,,,,,,   ,,,,,,,,,order_logistic_nodes  s   ,,,,,& lt; where>,,,,,,,,,,,   ,,,,,,,& lt; if 测试=皊tringId  !=, null 以及stringId  !=& # 39; & # 39;“比;   ,,,,,,,,,,s.id =, # {stringId jdbcType=VARCHAR}   ,,,,,,,& lt;/if>   ,,,,,& lt;/where>   ,,,)   ,,,order  by  a.node_sort   ,,,limit  1

xml中,取实体类的属性前面要加上类的引用

关于使用Mybatis时无法将查询结果存进实体类如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

使用Mybatis时无法将查询结果存进实体类如何解决