问题描述:
j博主在java开发过程中,通过读取excel中表名和字段名,动态创建insert的SQL语句,在mysql可视化工具中执行此SQL语句时,一直提示“Error Code: 1054. Unknown column '字段名' in 'field list'。
明明数据库的表中,存在此字段,为什么提示字段不存在。于是我就拿代码生成的字段名和数据库的字段名长度对比,好家伙,发现字段名相同,但长度不同,如下图所示:
解决方法:
通过对比,长度不同说明是字符串编码格式不对,java代码中读取excel表中字段名的编码格式为带BOM的utf8的,所以字段名是带有符号,因此要保证生成的字段名长度和数据库中字段名长度一致,则
需要通过一下代码处理:
1 if (item.substring(0, 1).contains("\uFEFF")) { 2 item = item.substring(1); 3 }
经过此项处理后,生成的SQL语句则不会再报找不到字段的错误。