• Mybatis保存时参数携带了逗号和空格导致SQL保存异常


            起初发现这个问题是因为导入文件时,用户输入的导入参数不规范,在字段中有逗号和空格一起出现,就会导致mybatis保存时发生sql异常。

            异常数据张这样:

    1. INSERT INTO enterprise_stratification (
    2. id,
    3. create_date,
    4. create_by,
    5. update_date,
    6. update_by,
    7. del_flag,
    8. remarks,
    9. platform_code,
    10. company_name,
    11. tax_level,
    12. industry_attribute,
    13. listing_attribute,
    14. primary_business,
    15. classification_industry,
    16. equity_financing,
    17. financ_level,
    18. is_credit_stain,
    19. is_equity_transfer,
    20. is_loss_personnel,
    21. annual_profit,
    22. business_income,
    23. financ_type,
    24. financ_amount,
    25. finance_rate,
    26. fund_use,
    27. build_project,
    28. under_investment_project,
    29. third_party_agency,
    30. policy_subsidy,
    31. shareholder_num,
    32. employee_num,
    33. legal_representative_name,
    34. id_number,
    35. phone_number,
    36. contact_name,
    37. contact_number,
    38. credit_service_demand,
    39. equity_service_needs,
    40. financ_service_demand,
    41. financ_smart_service,
    42. relisting_service,
    43. COMMENT,
    44. contact_time,
    45. referrer,
    46. submitter,
    47. submit_time
    48. )
    49. VALUES
    50. (
    51. '49f2495472774163a6469540ad8a12aa',
    52. '2023-11-14 20:31:28.32',
    53. '1',
    54. '2023-11-14 20:31:28.32',
    55. '1',
    56. '0',
    57. NULL,
    58. '1',
    59. '山西七曜生物科技有限公司',
    60. '以上都不是',
    61. '科技型中小企业',
    62. '以上都不是',
    63. '大健康饮品,茶饮料',
    64. '零售业',
    65. '获得过',
    66. '小于等于100万',
    67. '否',
    68. '是',
    69. '否',
    70. '10',
    71. '30',
    72. '其他',
    73. '100',
    74. '5%以内',
    75. '新品研发和产品销售推广',
    76. '生产基地',
    77. '新品研发及渠道建设',
    78. '其他机构',
    79. '20',
    80. '3',
    81. '10',
    82. '李曜',
    83. '140421199510083666',
    84. '15235566543',
    85. '李曜',
    86. '15235566543',
    87. 专项信用深度报告分析,信用评级评价(七牌一证), 信用档案, 信用会员招募,
    88. 股权架构设计服务, 股权估值服务,股权质押融资服务,员工持股计划服务,
    89. 普惠必贷金融产品, 公司股权、债权、贷款、并购融资规模提升服务,
    90. 市场营销管理服务, 法律服务, ,投行推荐咨询服务,特色化标签评定(农业龙头、专精特新、科技型中小企业),
    91. 精准帮扶服务产品, 股权优化服务产品,股权确权服务产品, 券商推荐服务产品,
    92. '多开展活动和宣传',
    93. '3',
    94. '政府机构',
    95. '小太阳',
    96. '2023-11-02'
    97. )

            其中,有些数据是没有用引号引起来,导致mysql认为他们是不同的字段的值

    解决的办法:

    1、在实体类保存时,添加去空格的校验

    1. public void setFinancType(String financType) {
    2. if(StringUtils.isNotBlank(financType)){
    3. financType = financType.replaceAll("\\s", "");
    4. }
    5. this.financType = financType;
    6. }

            if(StringUtils.isNotBlank(financType)){
                financType = financType.replaceAll("\\s", "");
            } 

            首先做判空,不为空时去除空格,\\s为所有的空格符。

    2、在mybatis中不使用#{value_name} 对实体和数据库字段做赋值,通过${value_name}来赋值

  • 相关阅读:
    用户生命周期价值LTV
    tensorflow的tensor
    百看不如一练系列 32个python实战项目列表,得不到就毁掉
    市场情绪:新高新低指标(NHNL)
    top100-贪心算法
    HTTP 结构概述
    【Linux】信号的处理
    如何做好一次代码审查,什么样是一次优秀的代码审查,静态代码分析工具有哪些
    HyperBDR新版本上线,自动化容灾兼容再升级!
    数据结构_复杂度讲解(附带例题详解)
  • 原文地址:https://blog.csdn.net/weixin_51722520/article/details/134407973