苏州网站开发网站建立费用抖音流量推广神器软件
起初发现这个问题是因为导入文件时,用户输入的导入参数不规范,在字段中有逗号和空格一起出现,就会导致mybatis保存时发生sql异常。
异常数据张这样:
INSERT INTO enterprise_stratification (id,create_date,create_by,update_date,update_by,del_flag,remarks,platform_code,company_name,tax_level,industry_attribute,listing_attribute,primary_business,classification_industry,equity_financing,financ_level,is_credit_stain,is_equity_transfer,is_loss_personnel,annual_profit,business_income,financ_type,financ_amount,finance_rate,fund_use,build_project,under_investment_project,third_party_agency,policy_subsidy,shareholder_num,employee_num,legal_representative_name,id_number,phone_number,contact_name,contact_number,credit_service_demand,equity_service_needs,financ_service_demand,financ_smart_service,relisting_service,COMMENT,contact_time,referrer,submitter,submit_time
)
VALUES('49f2495472774163a6469540ad8a12aa','2023-11-14 20:31:28.32','1','2023-11-14 20:31:28.32','1','0',NULL,'1','山西七曜生物科技有限公司','以上都不是','科技型中小企业','以上都不是','大健康饮品,茶饮料','零售业','获得过','小于等于100万','否','是','否','10','30','其他','100','5%以内','新品研发和产品销售推广','生产基地','新品研发及渠道建设','其他机构','20','3','10','李曜','140421199510083666','15235566543','李曜','15235566543',专项信用深度报告分析,信用评级评价(七牌一证), 信用档案, 信用会员招募,股权架构设计服务, 股权估值服务,股权质押融资服务,员工持股计划服务,普惠必贷金融产品, 公司股权、债权、贷款、并购融资规模提升服务,市场营销管理服务, 法律服务, ,投行推荐咨询服务,特色化标签评定(农业龙头、专精特新、科技型中小企业),精准帮扶服务产品, 股权优化服务产品,股权确权服务产品, 券商推荐服务产品,'多开展活动和宣传','3','政府机构','小太阳','2023-11-02' )
其中,有些数据是没有用引号引起来,导致mysql认为他们是不同的字段的值
解决的办法:
1、在实体类保存时,添加去空格的校验
public void setFinancType(String financType) {if(StringUtils.isNotBlank(financType)){financType = financType.replaceAll("\\s", "");}this.financType = financType;}
if(StringUtils.isNotBlank(financType)){
financType = financType.replaceAll("\\s", "");
}
首先做判空,不为空时去除空格,\\s为所有的空格符。
2、在mybatis中不使用#{value_name} 对实体和数据库字段做赋值,通过${value_name}来赋值