使用java在SQL数据库中插入命令时出错
我需要每天更新sql数据库,以了解点击印象和转换列中的更改。我为每一列创建了一个数组。此语句中有一个错误。我也找不到错误。请帮忙使用java在SQL数据库中插入命令时出错,java,sql,Java,Sql,我需要每天更新sql数据库,以了解点击印象和转换列中的更改。我为每一列创建了一个数组。此语句中有一个错误。我也找不到错误。请帮忙 for(int j=1;j<row;j++){ pst= conn.prepareStatement("INSERT INTO babum_test.l2ttracker SET Clientid='"+Customer_ID[j]+"',Accountname='"+Account[j]"',Dates='"Day[j]"',Clicks='"Clicks[j
for(int j=1;j<row;j++){
pst= conn.prepareStatement("INSERT INTO babum_test.l2ttracker SET Clientid='"+Customer_ID[j]+"',Accountname='"+Account[j]"',Dates='"Day[j]"',Clicks='"Clicks[j]"',Impressions='"Impressions[j]"',CTR='"CTR[j]"',Avg_CPC='"Avg_CPC[j]"',Cost='"Costs[j]"',Conversions='"Conversions[j]"',Converted_clicks='"Converted_clicks[j]"',Avg_position='"Avg_position[j]"',Revenue='"Total_Conv_value[j]+"' ON DUPLICATE KEY UPDATE'"+ "'Clicks='"+Clicks[j]"',Impressions='"Impressions[j]"',CTR='"CTR[j]"',Avg_CPC='"Avg_CPC[j]"',Cost='"Costs[j]"',Conversions='"Conversions[j]"',Avg_position='"Avg_position[j]"',Converted_clicks='"Converted_clicks[j]"',Revenue='"Total_Conv_value[j]);
}
for(int j=1;j有三个主要问题:
你没有在应该使用引号的地方使用引号
我不知道有哪个数据库使用INSERT…SET
语句
您将使自己极易受到SQL注入攻击
强制性漫画re#3:
相反:
pst = conn.prepareStatement(
"INSERT INTO sampletable " +
"(FirstColumn SecondColumn, Etc) " +
"VALUES " +
"(?, ?, ?)"
);
pst.setString(1, "value for first column");
pst.setInt(2, 42);
pst.setDate(3, /*...some date...*/);
pst.execute();
问号是预留语句将在其中放置值的占位符。即使参数是字符串,也不要在问号周围加引号;这是在后台处理的,也是使用预留语句的部分原因。请注意,参数编号从1开始,而不是从0开始
阅读SQL语法以及如何正确使用准备好的语句;可能很有用。1/quotes 2/SQL injection 3/误用。请继续阅读,我们可以在INSERT语句中使用SET关键字吗?我从未使用过,SET用于UPDATE语句,INSERT语句中有一个VALUES关键字。除了误用准备好的语句外,dbms是什么您正在使用,出现了什么错误?看起来您正在使用语法INSERT-INTO-table SET column=value
,IIRC完全错误。他们已经用R语言开发了此代码。现在我需要将其转换为Java以批处理文件的形式运行。在R语言中,他们使用了此SQL命令。SQL命令对于所有lan都是通用的guages。所以我在这里用它来插入和更新Kay。对于插入,我知道这个命令。实际上,表有两列作为主键。现在我需要覆盖主键行中显示的数据。这是怎么可能的。例如:数据假设为dane,223-456-4211,11/2/2015,35,45,2345在此语句中,第2列和第3列的值是主键。剩余的25,352345个值将每天更改。我需要使用program@abhilash.r:您可以使用UPDATE
语句执行此操作。请阅读SQL。