问题
Wondering how can I do the following in JSP/Servlets:
Upload a zip file (containing multiple CSV files)
Unzip the file to obtian the CSV files
Read the CSV files and pump the records into a mySQL database
Note: mySQL table is set up and ready for CSV files inputs.
Thanks in advance.
回答1:
1: Upload a zip file (containing multiple CSV files)
Use a multipart/form-data form with input type="file" in HTML/JSP to be able to select a file and upload it. Use Apache Commons FileUpload in the Servlet to be able to parse the request body and obtain the uploaded files. See also: How to upload files in JSP/Servlet?
2: Unzip the file to obtian the CSV files
Use java.util.ZipInputStream to read a zip file and extract the zip entries. See also: Compressing and Decompressing files in Java.
3: Read the CSV files and pump the records into a mySQL database
Two ways:
Put the CSV somewhere on the local disk file system where the MySQL has access to and instruct it to import it using a LOAD DATA INFILE query.
Use an existing CSV parser or create one to parse a CSV into a useable collection of Java objects, e.g.
List<List<String>>. Then learn JDBC and use PreparedStatement to create, populate and execute anINSERTquery in batches. See also this mini tutorial on MySQL and JDBC.
来源:https://stackoverflow.com/questions/3768104/jsp-servlets-how-do-i-upload-a-zip-file-unzip-it-and-extract-the-csv-file