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>
==> 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:
爱你们的小张
其实原因很简单,并不是 mybatis 把 null 识别为空字符串 ''
,而是请求中的 query 字符串指定没有值的参数后,ServletRequest#getParameter
方法获取到的就是空字符串 ''
,题主可以自己打个断点测试下。有帮助麻烦给个采纳哈。
test后面应该是双引号吧,换成双引号再试试
<if test=' enterpriseCategory != ""'>
and ENTERPRISE_CATEGORY = #{enterpriseCategory,jdbcType=VARCHAR}
</if>
你改一下吧,改成这样试试,注意你的dao方法里面的参数要和里面拼接的参数一致,id与dao的方法名一致
<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>
<if test="comName != null and comName != ''">
and COM_NAME like concat('%',${comName},'%')
</if>
<if test="enterpriseCategory!= null and enterpriseCategory !=''">
and ENTERPRISE_CATEGORY = #{enterpriseCategory}
</if>
<if test="isDangersource!= null and isDangersource !=''">
and IS_DANGERSOURCE = #{isDangersource}
</if>
<if test="districtId!= null and districtId !=''">
and DISTRICT_ID = #{districtId}
</if>
<if test="ownerType !=''">
and OWNER_TYPE = #{ownerType}
</if>
</where>
</select>