teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードを追加しました。

2020/06/18 09:53

投稿

senior_golfer
senior_golfer

スコア267

answer CHANGED
@@ -1,4 +1,38 @@
1
1
  お疲れさまです。
2
2
 
3
3
  あまりスマートな方法ではないかもしれませんが、読み込んだCSVデータを数えるカウンタを作り、
4
- if文でタイトル行は読むけどDBに書き込まないとしてはどうですか。
4
+ if文でタイトル行は読むけどDBに書き込まないとしてはどうですか。
5
+ あくまでも1行目がタイトルという前提です。
6
+ あと、DBに各処理はmapper.insert(user);はこれかなと思いましたが、
7
+ lines.add(line);も一緒に囲んでしまいました。
8
+ 適当に修正してください。
9
+
10
+
11
+ ```
12
+ String line = null;
13
+ int csfCount = 0; //追加
14
+
15
+ try {
16
+ InputStream stream = uploadFile.getInputStream();
17
+ Reader reader = new InputStreamReader(stream);
18
+ BufferedReader buf= new BufferedReader(reader);
19
+
20
+ while((line = buf.readLine()) != null) {
21
+ csvCount++; //追加
22
+ String[] data = line.split(",", 0);
23
+
24
+ User user = new User();
25
+ user.setUserName(data[0]);
26
+ user.setAge(Integer.parseInt(data[1]));
27
+ user.setOccupation(data[2]);
28
+
29
+ if(csvCount > 1){ //追加
30
+ mapper.insert(user);
31
+ lines.add(line);
32
+ }
33
+ }
34
+
35
+ line = buf.readLine();
36
+
37
+ } catch (IOException e) {
38
+ ```