項(xiàng)目場(chǎng)景:
使用 mybatis + springboot 進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)操作時(shí)属韧,發(fā)現(xiàn)返回的 dao 對(duì)象一直報(bào)空指針
問(wèn)題描述:
后端 dao 層(service 層調(diào)用 dao 層,調(diào)用 select 查詢(xún)方法啥么,select 語(yǔ)句有返回查詢(xún)結(jié)果往枷,但 dao 對(duì)象屬性一直都是 null)
原因分析:
dao.xml 文件中框产,查詢(xún)方法有問(wèn)題:
<resultMap id="ReportDto" type="com.test.project.report.model.ReportDto">
</resultMap>
實(shí)體類(lèi)如下:
@Data
public class ReportDto {
private Integer projectId;
private Integer caseTotalCount;
private Integer caseExecuteCount;
private Integer caseSuccessCount;
}
這里指定的返回類(lèi)型是 ReportDto凄杯,實(shí)體類(lèi)中的屬性與實(shí)際數(shù)據(jù)庫(kù)中的字段并不對(duì)應(yīng),而是與查詢(xún)語(yǔ)句返回的結(jié)果值對(duì)應(yīng)秉宿,需要指定字段映射戒突。
修改成如下:
<resultMap id="ReportDto" type="com.test.project.report.model.ReportDto">
<result column="project_id" property="projectId" />
<result column="case_total_count" property="caseTotalCount" />
<result column="case_execute_count" property="caseExecuteCount" />
<result column="case_success_count" property="caseSuccessCount" />
</resultMap>
再次運(yùn)行,發(fā)現(xiàn) dao 層返回的對(duì)象可以正常映射到數(shù)據(jù)庫(kù)的值描睦。