gpt4 book ai didi

java - 将 Excel 中的行插入 mysql 会引发 JDBC 异常

转载 作者:行者123 更新时间:2023-11-29 13:22:53 24 4
gpt4 key购买 nike

After taking help为了正确读取 Excel 日期值,我面临着另一个令我困惑的问题。插入 Excel 行时,VARCHAR 列的单元格引号会丢失。

例如,我将一行读入列表,例如

[1,阿山,2013-12-12]

然后,在形成查询并执行 SQL 语句时,出现 MySQLSyntaxException。使用插入语句时如何保留(或者为获取的数据添加单引号)。以下是我用来形成查询的代码,

Statement stmt = null;
String qry = "insert into "+ fieldValue + " (";
for (int i=0; i<sheetColumnNames.size(); i++ ) {

if (i == (sheetColumnNames.size() -1)) {
qry += sheetColumnNames.get(i) +")";
}
else
{
qry += sheetColumnNames.get(i) +",";
} }
qry += " values " ;
qry += "(";
// This code is in a Row loop
for (int i=0; i<rowSet.size(); i++) {
if (i == (rowSet.size() -1))
{
if ((row.getRowNum()+1)==(sheet.getLastRowNum()+1))
{
qry += rowSet.get(i) +")";
}
else
{
qry += rowSet.get(i) +"),";
}
}
else
{


qry += rowSet.get(i) +",";
}
}

最佳答案

考虑使用准备语句,然后 MySQL/JDBC 可以为您处理它。

目前您的数据库还容易受到 SQL 注入(inject)攻击。

编辑:性能也应该更好(但不确定是否明显),因为您正在重复使用假设 Excel 文件中有多行的语句。

关于java - 将 Excel 中的行插入 mysql 会引发 JDBC 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20550333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com