mybatis将参数null识别为"",不明白是为什么
post请求:
POST http://localhost:8080/companyList
Content-Type: application/x-www-form-urlencoded
comName="销售"&enterpriseCategory=&isDangersource=&districtId=&ownerType=
controller:
@RequestMapping("/companyList")
@ResponseBody
public List<HwCompanyInfo> companyList(String comName,
String enterpriseCategory,
String isDangersource,
String districtId,
String ownerType){
return hwCompanyInfoService.selectHwCompanyInfosByParam(comName,enterpriseCategory,isDangersource,districtId,ownerType);
}
servieImpl:
@Override
public List<HwCompanyInfo> selectHwCompanyInfosByParam(String comName, String enterpriseCategory, String isDangersource, String districtId, String ownerType) {
Map<String,Object> param=new HashMap<String,Object>();
param.put("comName",comName);
param.put("enterpriseCategory",enterpriseCategory);
param.put("isDangersource",isDangersource);
param.put("districtId",districtId);
param.put("ownerType",ownerType);
System.out.println(param.toString());
return hwCompanyInfoMapper.selectHwCompanyInfosByParam(param);
}
mapper.xml:
<select id="selectHwCompanyInfosByParam" parameterType="java.util.Map" resultMap="BaseResultMap">
select COMCODE, BISINESS_NUM, CITY_ID, COM_LEVEL, COM_NAME, COM_TYPE, COMPANY_SCALE,
CORPORATION_NAME, COUNTY, DANGOODS_NAME, DISTRICT_ID, ECONOMY_TYPE, EMERGENCY_TEL,
EMPLOY_NUM, ENTERPRISE_AREA, ENTERPRISE_CATEGORY, ENTERPRISE_SORT, FIXED_ASSETS,
FOUNDATE, GNAME_UN_NUMBER, GPRODUCT_ALLOW, GPRODUCT_BEGIN, GPRODUCT_END, GPRODUCT_NUM,
INDUSTRIAL_PARK, IS_ACCESS, IS_AMMONIA, IS_HEALTH, IS_MAIN, LAST_YEAR_SALES, LATITUDE,
LEGAL_PERSON, LEGAL_SAFE_NUM, LEGAL_TEL, LONGITUDE, MAIN_MOBILE, MAIN_PERSON, MAIN_TEL,
OPERATE_ALLOW, OPERATE_BEGIN, OPERATE_END, OPERATE_NUM, OWNER_TYPE, PRODUCT_ADDRESS,
PRODUCT_ALLOW, PRODUCT_BEGIN, PRODUCT_END, PRODUCT_NUM, REGIST_ADDRESS, REGISTERED_CAPITAL,
REVIEW_UNIT, SAFE_CHECK_DATE, SAFE_MOBILE, SAFE_PERSON, SAFE_TEL, SAFETY_ENGINEER_NUM,
SAFETY_MANAGER_NUM, SECTORS_MTYPE, SECTORS_TYPE, SECURITY_AGENCIES, SECURITY_MANAGER,
STANDARD_LEVEL, STANDARD_TIME, STREET_ID, SUPERVISE_STYPE, SUPERVISE_TYPE, SUPERVISORY_AUTHORITY,
TOWNS, TRANSPORT, USE_ALLOW, USE_BEGIN, USE_END, USE_NUM, VERIFY_CONTENT, VERIFY_STATUS,
VERIFY_TYPE, VERSION_INFO, WHETHER_CORPORATION, ZIP_CODE, IS_DANGERSOURCE
from hw_company_info where 1=1
<if test="comName != null and comName != ''">
and COM_NAME like concat('%',${comName},'%')
</if>
<if test=' enterpriseCategory != ""'>
and ENTERPRISE_CATEGORY = #{enterpriseCategory,jdbcType=VARCHAR}
</if>
<if test='isDangersource !="" '>
and IS_DANGERSOURCE = #{isDangersource,jdbcType=VARCHAR}
</if>
<if test='districtId !="" '>
and DISTRICT_ID = #{districtId,jdbcType=VARCHAR}
</if>
<if test='ownerType !="" '>
and OWNER_TYPE = #{ownerType,jdbcType=VARCHAR}
</if>
</select>
运行的sql:
==> Preparing: select COMCODE, BISINESS_NUM, CITY_ID, COM_LEVEL, COM_NAME, COM_TYPE, COMPANY_SCALE, CORPORATION_NAME, COUNTY, DANGOODS_NAME, DISTRICT_ID, ECONOMY_TYPE, EMERGENCY_TEL, EMPLOY_NUM, ENTERPRISE_AREA, ENTERPRISE_CATEGORY, ENTERPRISE_SORT, FIXED_ASSETS, FOUNDATE, GNAME_UN_NUMBER, GPRODUCT_ALLOW, GPRODUCT_BEGIN, GPRODUCT_END, GPRODUCT_NUM, INDUSTRIAL_PARK, IS_ACCESS, IS_AMMONIA, IS_HEALTH, IS_MAIN, LAST_YEAR_SALES, LATITUDE, LEGAL_PERSON, LEGAL_SAFE_NUM, LEGAL_TEL, LONGITUDE, MAIN_MOBILE, MAIN_PERSON, MAIN_TEL, OPERATE_ALLOW, OPERATE_BEGIN, OPERATE_END, OPERATE_NUM, OWNER_TYPE, PRODUCT_ADDRESS, PRODUCT_ALLOW, PRODUCT_BEGIN, PRODUCT_END, PRODUCT_NUM, REGIST_ADDRESS, REGISTERED_CAPITAL, REVIEW_UNIT, SAFE_CHECK_DATE, SAFE_MOBILE, SAFE_PERSON, SAFE_TEL, SAFETY_ENGINEER_NUM, SAFETY_MANAGER_NUM, SECTORS_MTYPE, SECTORS_TYPE, SECURITY_AGENCIES, SECURITY_MANAGER, STANDARD_LEVEL, STANDARD_TIME, STREET_ID, SUPERVISE_STYPE, SUPERVISE_TYPE, SUPERVISORY_AUTHORITY, TOWNS, TRANSPORT, USE_ALLOW, USE_BEGIN, USE_END, USE_NUM, VERIFY_CONTENT, VERIFY_STATUS, VERIFY_TYPE, VERSION_INFO, WHETHER_CORPORATION, ZIP_CODE, IS_DANGERSOURCE from hw_company_info where 1=1 and COM_NAME like concat('%',"销售",'%')
==> Parameters:
我把后面四个参数判断里的!=null删掉了,只留下了!="",结果sql还是不拼接判断语句。而且当我传参为""时,反而会在sql拼接上条件语句
麻烦大家帮忙解答一下,为什么会出现这个情况,
爱你们的小张