这篇文章主要讲解了“mybatis resulttype返回值异常的问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mybatis resulttype返回值异常的问题怎么解决”吧!
在使用mybatis时。resulttype返回自定义的类时,可能返回的类中字段数据存在缺失。
原因是因为数据库字段和实体类字段不对应导致的。 mybatis底层 查询数据返回会更据数据库的字段和实体类的字段进行匹配,不区分大小写。但是字段不一样就无法传递值
处理方式1:
在查询时添加别名 select s_name as name from student 别名对于实体类当中的字段。
处理方式2:
返回一个resultMap map配置当中指定数据库中的列和实体类的类进行对应
<id column="s_name" jdbcType="VARCHAR" property="name"/>
在配置数据源的配置文件中,配置Mybatis的SqlSessionFactoryBean
解决方法:
resultType="map" 修改为 resultType="java.util.LinkedHashMap"
解决方法:
1.查询字段使用ifnull函数(可空字段较多时,不推荐)
2.修改mybatis配置
springmvc:
创建mybatis-config.xml
<?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> <!-- 当返回数据类型为map,设置callSettersOnNulls会把值为null的key也返回 --> <setting name="callSettersOnNulls" value="true"/> </settings> </configuration>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:/META-INF/spring/mybatis-config.xml" /> <property name="mapperLocations"> <array> <value>classpath*:/com/xxx/mapper/*.xml</value> </array> </property> </bean>
springboot:
配置文件:mybatis.configuration.call-setters-on-nulls=true
注解方式:
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * mybatis 注解版 * */ @Configuration public class MybatisConfig { @Bean public ConfigurationCustomizer configurationCustomizer() { return new ConfigurationCustomizer() { @Override public void customize(org.apache.ibatis.session.Configuration configuration) { configuration.setMapUnderscoreToCamelCase(true);//设置驼峰命名规则 configuration.setCallSettersOnNulls(true); } }; } }
感谢各位的阅读,以上就是“mybatis resulttype返回值异常的问题怎么解决”的内容了,经过本文的学习后,相信大家对mybatis resulttype返回值异常的问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。