Я хочу загрузить файл CSV в MySQL с сервлетом, и у меня есть такой код, и я получил ошибку из своего кода.
package ServToDb;
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import com.opencsv.CSVReader;
import Connection.Database;
@WebServlet("/ImportCSVtoDB")
public class ImportCSVtoDB extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ImportCSVtoDB() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String target_file ; // fileThatYouWantToFilter
File folderToScan = new File("C:/Users/DELL/Music/"); // this is the path we are scanning
File[] listOfFiles = folderToScan.listFiles();// this is the list of files returned in this folder
for (int j = 0; j < listOfFiles.length; j++) { // for each file in the folder
if (listOfFiles[j].isFile()) {
target_file = listOfFiles[j].getName();
if (target_file.equals("blog.csv")) { // look for the file. You can also check if it ends with csv etc.
try
{
Database db = new Database();
String loadQuery = "LOAD DATA LOCAL INFILE 'C:/Users/DELL/Music/csvtest.csv' INTO TABLE"
+ "importcsv FIELDS TERMINATED BY ','LINES TERMINATED BY '\n' (fname, sex) "; //remember to change the path here as well
Statement stmt = db.dbConn().createStatement();
stmt.execute(loadQuery);
}
catch (Exception e)
{
e.printStackTrace();
}
try (CSVReader reader = new CSVReader(new FileReader("C:/Users/DELL/Music/" + target_file), ',');)
{
Database db = new Database();
String insertQuery = "Insert into importcsv (fname, sex) values (?,?)";//write your insertion query
PreparedStatement pstmt = db.dbConn().prepareStatement(insertQuery);
String[] rowData = null;// create empty array which will hold values from csv
while((rowData = reader.readNext()) != null)
{
int i = 0;
for (String data : rowData)
{
i++;
if (i<3) {
pstmt.setString(i, data);
if (i == 2) {
pstmt.addBatch();// add batch
}
if (i % 30 == 0)// insert when the batch size is 10
{
pstmt.executeBatch(); // execute queries
}
}
}
}
}
catch (Exception e) {
e.printStackTrace();}
}
}
}
out.println("success");
}
}
, но я получаю такую ошибку.
The constructor CSVReader(Reader, char) is deprecated
из строки 60
try (CSVReader reader = new CSVReader(new FileReader("C:/Users/DELL/Music/" + target_file), ',');)
Как мне запустить этот код, пожалуйста, помогите мне, заранее спасибо за любую помощь.Я не собираюсь делать это для меня, я просто застрял и мне нужна помощь, чтобы найти дорогу.