我在将信息从一堂课转移到另一堂课时遇到问题。例如,我的第二个类文件将读取一个csv文件并将数据提取到数组nextLine []中。然后将数据传输到另一个数组d。然后,该函数调用readDateBase,它将接受数组输入d并执行设置的字符串函数。但是,我遇到了一个错误,该错误使我无法将数据发送到函数readDataBase(d)中。我不确定为什么...有人可以在这里帮我吗?非常感谢!

public void readDataBase(String d1, String d2, String d3, String d4 ) throws Exception   {
try {
// This will load the MySQL driver, each DB has its own driver
Class.forName("com.mysql.jdbc.Driver");
// Setup the connection with the DB
connect = DriverManager
.getConnection("jdbc:mysql://localhost/MAXdb?"
+ "user=root&password=");

// Statements allow to issue SQL queries to the database
statement = connect.createStatement();
// Result set get the result of the SQL query
resultSet = statement
.executeQuery("select * from MAXdb.emcsg");
writeResultSet(resultSet);

// PreparedStatements can use variables and are more efficient
preparedStatement = connect
.prepareStatement("insert into  MAXdb.emcsg values (default,?, ?, ? , ?, ?)");

// Parameters start with 1

preparedStatement.setString(1, d1);
preparedStatement.setString(2, d2);
preparedStatement.setString(3, d3);
preparedStatement.setString(4, d4);

preparedStatement.executeUpdate();

preparedStatement = connect
.prepareStatement("SELECT  Date, Time, Demand, Supply, Price from MAXdb.emcsg");
resultSet = preparedStatement.executeQuery();
writeResultSet(resultSet);
    }


我的第二堂课:

public void Csvreader() throws IOException {
try {
// TODO code application logic here

CSVReader reader = new CSVReader(new FileReader("D:/chart.csv"));

String  nextLine[];
Mysql sen = new Mysql();
while ((nextLine = reader.readNext()) != null) {

sen.readDataBase(nextLine[0], nextLine[1], nextLine[2], nextLine[3]);
}


} catch (FileNotFoundException ex) {
Logger.getLogger(Opencsv.class.getName()).log(Level.SEVERE, null, ex);
}

}

最佳答案

您的readDatabase()方法接受String[]作为参数,然后将其传递给String

如果使用诸如Eclipse之类的IDE,则IDE会抛出一条错误消息并突出显示该调用,表明该调用无效。 (此外,请尝试阅读错误消息!如果您无法理解该错误消息,请同时发布该错误消息。)

并注意您的术语。您的错误不是您没有捕获到异常,而是您的逻辑总是会引发该异常。捕获它不会使您的程序运行,只会导致它默默地失败。

10-08 14:11