1,查詢某條數(shù)據(jù)是否存在,如果查詢完的結(jié)果不需要再用到,可以在mapper中定義count方法,直接查詢出數(shù)量,具體寫(xiě)法:
mapper層:
int getCountByEqAssetId(String eqAssetId);
xml文件:
<select id="getCountByEqAssetId" parameterType="java.lang.String" resultType="java.lang.Integer">
select count(*) from T_EQ_SPARE_REPLACE
where EQ_ASSET_ID = #{eqAssetId,jdbcType=VARCHAR}
</select>
這樣在shervice中需要查詢?cè)摋l數(shù)據(jù)是否存在時(shí)候:
//設(shè)備備件更換數(shù)據(jù)庫(kù)重復(fù)校驗(yàn)
int num = spareReplaceMapper.getCountByEqAssetId(assetDO.getId());
if(num >0) {
return ErrorCode.SpareReplaceRecodeExist;
}
2,update和delete,對(duì)返回值int進(jìn)行判斷
對(duì)于數(shù)據(jù)庫(kù)的insert操作,如果失敗會(huì)返回相應(yīng)的錯(cuò)誤信息,但是update和delete時(shí),失敗了也不會(huì)有相應(yīng)的提示,所以我們最好對(duì)update和delete的返回值進(jìn)行判斷,如果返回的int值小于1,說(shuō)明update和delete并沒(méi)有正常執(zhí)行;
舉個(gè)栗子:
public ErrorCode updateByCertificateNo(CertificateManagerDO certificateManagerDO){
if(certificateManagerDOMapper.updateByCertificateNo(certificateManagerDO) == 0){
return ErrorCode.AssetUpdateFailure;
}
return ErrorCode.Success;
}
3,rollback的判定條件