这篇文章给大家介绍使用Mybatis时无法将查询结果存进实体类如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为陵城企业提供专业的成都网站制作、成都做网站、外贸营销网站建设,陵城网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。问题描述
使用Mybatis查询得到实体类
表定义如下
成员ID | 成员姓名 |
---|---|
member_id | member_name |
对应的实体类如下
public class Member { private Integer memberId; private String memberName; // 省略getter和setter }
对应的Mapper.xml如下
<select id="selectMemberByMemberName" resultType="Member"> SELECT * FROM member WHERE member_name = #{memberName} </select>
通过以下代码得到的member居然是null,这是为什么呢?
Member member = memberMapper.selectMemberByMemberName(memberName);
在日志我启用了DEBUG模式,发现查询结果集是有返回数据的,但是写不进去Member实体类中,最后发现是因为数据库与Java命名的规范是不一样的,需要转换,Mybatis也提供了相对应的驼峰命名转换法。
例如member_id对应memberId,但是默认是不启用的,所以需要手动启动。
解决方法
如果使用Mybatis配置文件,则可以按如下配置:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 开启驼峰命名转换 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
如果是springboot集成的,则可以做如下配置
mybatis: configuration: mapUnderscoreToCamelCase: true # 开启驼峰命名转换法
按照以上配置后重新访问则可以获得一个查询后的实体类。
补充知识:mybatis查询参数中既有 实体类参数又有基本类型参数 解决方案
这个方法真实有效,直接上代码
DAO中的查询方法
public LogisticNodes findFirstNode(
@Param("ln")LogisticNodes ln,@Param("stringId")String stringId);
第一个参数为实体类,需要加上@param()注解
xml中的写法
SELECT <include refid="logisticNodesColumns"/> FROM order_logistic_nodes a <where> <if test="ln.id != null and ln.id !=''"> AND a.id = #{ln.id,jdbcType=VARCHAR} </if> <if test="ln.nodeName != null and ln.nodeName !=''"> AND a.node_name = #{ln.nodeName,jdbcType=VARCHAR} </if> <if test="ln.nodeSort != null"> AND a.node_sort = #{ln.nodeSort,jdbcType=DECIMAL} </if> </where> and a.logistic_type IN ( SELECT s.logistic_type FROM order_logistic_nodes s <where> <if test="stringId != null and stringId !=''"> s.id = #{stringId,jdbcType=VARCHAR} </if> </where> ) order by a.node_sort limit 1
xml中,取实体类的属性前面要加上类的引用
关于使用Mybatis时无法将查询结果存进实体类如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站标题:使用Mybatis时无法将查询结果存进实体类如何解决-创新互联
文章转载:https://www.cdcxhl.com/article4/dcdpoe.html
成都网站建设公司_创新互联,为您提供服务器托管、用户体验、网站改版、网站排名、移动网站建设、定制开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联