我在将信息从一堂课转移到另一堂课时遇到问题。例如,我的第二个类文件将读取一个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会抛出一条错误消息并突出显示该调用,表明该调用无效。 (此外,请尝试阅读错误消息!如果您无法理解该错误消息,请同时发布该错误消息。)
并注意您的术语。您的错误不是您没有捕获到异常,而是您的逻辑总是会引发该异常。捕获它不会使您的程序运行,只会导致它默默地失败。