关于mybatis resulttype 返回值异常的问题

网友投稿 1230 2022-12-15

关于mybatis resulttype 返回值异常的问题

关于mybatis resulttype 返回值异常的问题

目录mybatis resulttype 返回值异常例如:resulttype = "student" 但是当中有些字段为空例如:数据库字段为:s_name 实体类字段为 namemybatis resultType="map"的常见问题一、map的key值 与select的字段顺序的不一致问题二、值为null的返回map中没相应的key

mybatis resulttype 返回值异常

在使用mybatis时。resulttype返回自定义的类时,可能返回的类中字段数据存在缺失。

例如:reshttp://ulttype = "student" 但是当中有些字段为空

原因是因为数据库字段和实体类字段不对应导致的。 mybatis底层 查询数据返回会更据数据库的字段和实体类的字段进行匹配,不区分大小写。但是字段不一样就无法传递值

例如:数据库字段为:s_name 实体类字段为 name

处理方式1:

在查询时添加别名 select s_name as name from student 别名对于实体类当中的字段。

处理方式2:

返回一个resultMap map配置当中指定数据库中的列和实体类的类进行对应

mybatis resultType="map"的常见问题

在配置数据源的配置文件中,配置Mybatis的SqlSessionFactoryBean

一、map的key值 与select的字段顺序的不一致问题

解决方法

resultType="map" 修改为 resultType="java.util.LinkedHashMap"

二、值为null的返回map中没相应的key

解决方法:

1.查询字段使用ifnull函数(可空字段较多时,不推荐)

2.修改mybatis配置

springmvc:

创建mybatis-config.xml

"http://mybatis.org/dtd/mybatis-3-config.dtd">

  classpath*:/com/xxx/mapper/*.xml

  

springboot:

配置文件:mybatis.configuration.call-setters-on-nulls=true

注解方式:

import org.mybatis.spring.boot.autoconfigure.Configurationhttp://Customizer;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

* mybatis 注解版

*

*/

@Configuration

public classsAGQfMfw MybatisConfig {

@Bean

public ConfigurationCustomizer configurationCustomizer() {

return new ConfigurationCustomizer() {

@Override

public void customize(org.apache.ibatis.session.Configuration configuration) {

configuration.setMapUnderscoreToCamelCase(true);//设置驼峰命名规则

configuration.setCallSettersOnNulls(true);

}

};

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Spring AOP自定义可重复注解没有生效问题
下一篇:基于mybatis查询结果映射不到对象的处理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~