这篇文章给大家介绍使用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 1xml中,取实体类的属性前面要加上类的引用
关于使用Mybatis时无法将查询结果存进实体类如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
使用Mybatis时无法将查询结果存进实体类如何解决