Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中使用Java将值从一个表写入另一个表_Java_Mysql_Jdbc - Fatal编程技术网

在MySQL中使用Java将值从一个表写入另一个表

在MySQL中使用Java将值从一个表写入另一个表,java,mysql,jdbc,Java,Mysql,Jdbc,我的公司代码(如AAPL)存储在代码字符串中,并且在我的公司表中有一个名为ticker的列。我想找到一个带有该代码的行,并将该行的数据复制到资产负债表中 我在线程“main”中得到错误异常 有没有关于如何以这种方式复制数据的想法 您应该使用而不是字符串连接来避免此类问题。以及防止SQL注入(正如可怕的袋熊所建议的那样)。此处的错误是由于缺少报价 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'A

我的公司代码(如AAPL)存储在代码字符串中,并且在我的公司表中有一个名为ticker的列。我想找到一个带有该代码的行,并将该行的数据复制到资产负债表中

我在线程“main”中得到错误异常

有没有关于如何以这种方式复制数据的想法

您应该使用而不是字符串连接来避免此类问题。以及防止SQL注入(正如可怕的袋熊所建议的那样)。此处的错误是由于缺少报价

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();