###前提・実現したいこと
javaでMVCモデルのwebアプリケーションを作っています。
CSVファイルの内容を一括登録したいです。
CSVファイルをファイル登録するところまではできているのですが、一つずつDBに格納仕方がわかりません。
具体的に
while文でファイルデータ(Fileオブジェクト)を一行ずつ取り出す
while文の中で、さらにif文でファイルデータの場合の処理を記述する
ファイルデータのファイル名(PATH名含む)を取得
PATH名を除くファイル名のみを取得
ファイルデータを指定されたファイルに保存する(eclipse内に保存)
BuffereReaderを利用して、ファイルの変換を行う
リストに格納する(保存したところから呼び出す)
リストを作成し、while文で一行ずつ情報を格納したい
###該当のソースコード
package drinkMachine.FileUP;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import drinkMachine.dao.T001ItemDao;
public class FileUpController extends HttpServlet {
private static final long serialVersionUID = 1L;
public FileUpController() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sfu = new ServletFileUpload(factory); factory.setSizeThreshold(1024); sfu.setSizeMax(-1); sfu.setHeaderEncoding("UTF-8"); String name = ""; String unitPrice = ""; String count = ""; String isPR = ""; String image = ""; String file = ""; String nextPage = ""; String path = "C:/Users/bks013/workspace/jspServlet/CSV"; try { // (1)ファイルデータ(FileItemオブジェクト)を取得し、 // Listオブジェクトとして返す List list = sfu.parseRequest(request); T001ItemDao dao = new T001ItemDao(); // (2)ファイルデータ(FileItemオブジェクト)を順に処理 Iterator iterator = list.iterator(); while (iterator.hasNext()) { FileItem fItem = (FileItem) iterator.next(); // (3)ファイルデータの場合、if内を実行 if (!(fItem.isFormField())) { // (4)ファイルデータのファイル名(PATH名含む)を取得 file = fItem.getName(); String fileFiledName = fItem.getFieldName(); if ((file != null) && (!file.equals(""))) { // (5)PATH名を除くファイル名のみを取得 file = (new File(file)).getName(); fItem.write(new File(path + "/" + fileFiledName)); } } else {// ファイルではない処理(テキスト等) if (fItem.getFieldName().equals("name")) { name = fItem.getString("UTF-8"); System.out.println("商品名:" + name); } else if (fItem.getFieldName().equals("unitPrice")) { unitPrice = fItem.getString("UTF-8"); System.out.println("金額:" + unitPrice); } else if (fItem.getFieldName().equals("count")) { count = fItem.getString("UTF-8"); System.out.println("数:" + count); } else if (fItem.getFieldName().equals("isPR")) { isPR = fItem.getString("UTF-8"); System.out.println("おすすめ:" + isPR); } } }
}
あなたの回答
tips
プレビュー