您好,登錄后才能下訂單哦!
這篇文章主要講解了“mybatis resulttype返回值異常的問題怎么解決”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mybatis resulttype返回值異常的問題怎么解決”吧!
在使用mybatis時。resulttype返回自定義的類時,可能返回的類中字段數(shù)據(jù)存在缺失。
原因是因為數(shù)據(jù)庫字段和實體類字段不對應導致的。 mybatis底層 查詢數(shù)據(jù)返回會更據(jù)數(shù)據(jù)庫的字段和實體類的字段進行匹配,不區(qū)分大小寫。但是字段不一樣就無法傳遞值
處理方式1:
在查詢時添加別名 select s_name as name from student 別名對于實體類當中的字段。
處理方式2:
返回一個resultMap map配置當中指定數(shù)據(jù)庫中的列和實體類的類進行對應
<id column="s_name" jdbcType="VARCHAR" property="name"/>
在配置數(shù)據(jù)源的配置文件中,配置Mybatis的SqlSessionFactoryBean
解決方法:
resultType="map" 修改為 resultType="java.util.LinkedHashMap"
解決方法:
1.查詢字段使用ifnull函數(shù)(可空字段較多時,不推薦)
2.修改mybatis配置
springmvc:
創(chuàng)建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> <!-- 當返回數(shù)據(jù)類型為map,設(shè)置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);//設(shè)置駝峰命名規(guī)則 configuration.setCallSettersOnNulls(true); } }; } }
感謝各位的閱讀,以上就是“mybatis resulttype返回值異常的問題怎么解決”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對mybatis resulttype返回值異常的問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。