Я новичок в этом. Мне нужно создать jsp, чтобы загрузить файл CSV и отправить данные из него в базу данных mysql. Я сделал код в Java, чтобы выполнить последнюю часть, но не знаю, как подключить его к jsp, поэтому, когда пользователь нажимает кнопку загрузки, запускается код java.
My java code:
import java.io.*;
import java.sql.*;
public class dbInserter {
public static void main(String[] args) {
String jdbcURL = "jdbc:mysql://localhost:3306/testDb";
String username = "root";
String password = "1234";
String csvFilePath = "C:/Users/Name/Desktop/Attendance.csv";
int batchSize = 20;
Connection connection = null;
try {
connection = DriverManager.getConnection(jdbcURL, username, password);
connection.setAutoCommit(false);
String sql = "INSERT INTO csv (name, `in-time`, `out-time`) VALUES (?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
BufferedReader lineReader = new BufferedReader(new FileReader(csvFilePath));
String lineText = null;
int count = 0;
lineReader.readLine(); // skip header line
while ((lineText = lineReader.readLine()) != null) {
String[] data = lineText.split(",");
String name = data[0];
String inTime = data[1];
String outTime = data[2];
statement.setString(1, name);
statement.setString(2, inTime);
statement.setString(3, outTime);
statement.addBatch();
if (count % batchSize == 0) {
statement.executeBatch();
}
}
lineReader.close();
// execute the remaining queries
statement.executeBatch();
connection.commit();
connection.close();
} catch (IOException ex) {
System.err.println(ex);
} catch (SQLException ex) {
ex.printStackTrace();
try {
connection.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Я пробовал использовать сервлет, но, поскольку у меня очень мало опыта его использования, я столкнулся со многими ошибками. Был бы очень признателен, если бы кто-нибудь мог мне с этим помочь.