在MySQL中使用Java将值从一个表写入另一个表
我的公司代码(如AAPL)存储在代码字符串中,并且在我的公司表中有一个名为ticker的列。我想找到一个带有该代码的行,并将该行的数据复制到资产负债表中 我在线程“main”中得到错误异常 有没有关于如何以这种方式复制数据的想法 您应该使用而不是字符串连接来避免此类问题。以及防止SQL注入(正如可怕的袋熊所建议的那样)。此处的错误是由于缺少报价在MySQL中使用Java将值从一个表写入另一个表,java,mysql,jdbc,Java,Mysql,Jdbc,我的公司代码(如AAPL)存储在代码字符串中,并且在我的公司表中有一个名为ticker的列。我想找到一个带有该代码的行,并将该行的数据复制到资产负债表中 我在线程“main”中得到错误异常 有没有关于如何以这种方式复制数据的想法 您应该使用而不是字符串连接来避免此类问题。以及防止SQL注入(正如可怕的袋熊所建议的那样)。此处的错误是由于缺少报价 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'A
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'AAPL' in 'where clause'
或者
"SELECT companies_id, Companies, ticker FROM companies WHERE ticker = '" + ticker +"'";
检查您的数据库表中是否存在AAPL列?您是否可以分享您使用的是语句还是准备好的语句?我已经阅读了问题@TREARY Wombat,看看用户发布的异常?@ManishSakpal我有公司代码(如AAPL)储存在股票代码StringOK@Tramby Wombat中,我不知道什么是公司股票代码,因为我不在公司工作,所以我误解了它。对不起,我道歉!您应该使用预先准备好的语句来防止SQL注入谢谢,这确实有效,我确实忘记了两个引号““””。我会注意准备好的报表,而且我也从来没有在BalanceSheet表上创建开始的列。
"SELECT companies_id, Companies, ticker FROM companies WHERE ticker = '" + ticker +"'";
String writeCompanyValues = "INSERT INTO BALANCESHEET (companies_id, Companies, ticker) "
+ "SELECT companies_id, Companies, ticker FROM companies WHERE ticker = ?";
stmt = con.prepareStatement(writeCompanyValues);
stmt.setString(1, ticker);
stmt.executeUpdate();