From e1b74e4ad240c0c29ff1cd610854fb5576882f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=B7=9D=E3=80=80=E8=A3=95=E6=A8=B9?= <26-y-ishikawa-stellatecnica@it-college.co.jp> Date: Fri, 23 Oct 2026 16:25:33 +0900 Subject: [PATCH] =?UTF-8?q?=E5=80=8B=E4=BA=BA=E9=96=8B=E7=99=BA20261023?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 7 + .gitignore | 1 + .project | 23 +++ .settings/.jsdtscope | 7 + ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .../example/access/DepartmentAccess.java | 72 ++++++++ .../rhizome/example/data/DepartmentData.java | 33 ++++ src/com/rhizome/example/main/Main.java | 155 +++++++++++++++++- 9 files changed, 293 insertions(+), 7 deletions(-) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/.jsdtscope create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 src/com/rhizome/example/access/DepartmentAccess.java create mode 100644 src/com/rhizome/example/data/DepartmentData.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..31d6a44 --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..cec334c --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + development-empmanager + + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..cca691f --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..49c8cd4 --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.JRE_CONTAINER \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..11006e2 --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Global \ No newline at end of file diff --git a/src/com/rhizome/example/access/DepartmentAccess.java b/src/com/rhizome/example/access/DepartmentAccess.java new file mode 100644 index 0000000..6a5e892 --- /dev/null +++ b/src/com/rhizome/example/access/DepartmentAccess.java @@ -0,0 +1,72 @@ +package com.rhizome.example.access; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import com.rhizome.example.data.BaseData; +import com.rhizome.example.data.DepartmentData; + +public class DepartmentAccess extends BaseAccess { + private static final String DPT_FILEPATH = "file/DepartmentData.csv"; + + public DepartmentAccess() { + super("file/DepartmentData.csv"); + } + + public List selectAll() throws FileNotFoundException { + List csvList = this.readData(); + List datalist = new ArrayList(); + + for(String line : csvList) {// 26 + DepartmentData dpt = new DepartmentData(); + String[] columns = line.split(","); + + dpt.setIdDepartment(columns[0]); + dpt.setNmDepartment(columns[1]); + datalist.add(dpt); + } + return datalist; + } + public List selectById(String key) throws FileNotFoundException { + List allList = this.selectAll(); + List selectList = new ArrayList(); + + for(BaseData dpt : allList) { + if (dpt.getPrimaryKeyValue().equals(key)) { + selectList.add(dpt); + } + } + return selectList; + } + + public void insert(BaseData data) throws IOException { + this.addData(data);// 61 + }// 62 + + public void update(BaseData updateData) throws IOException { + List updatedList = new ArrayList(); + + for(BaseData dpt : this.selectAll()) { + if (dpt.getPrimaryKeyValue().equals(updateData.getPrimaryKeyValue())) {// 72 + updatedList.add(updateData); + } else { + updatedList.add(dpt); + } + } + + this.updateData(updatedList);// 81 + }// 83 + + public void delete(String key) throws IOException { + List deletedList = new ArrayList();// 88 + + for(BaseData employee : this.selectAll()) {// 91 93 + if (!employee.getPrimaryKeyValue().equals(key)) {// 94 + deletedList.add(employee);// 95 + } + } + updateData(deletedList); + } +} diff --git a/src/com/rhizome/example/data/DepartmentData.java b/src/com/rhizome/example/data/DepartmentData.java new file mode 100644 index 0000000..b5480b1 --- /dev/null +++ b/src/com/rhizome/example/data/DepartmentData.java @@ -0,0 +1,33 @@ +package com.rhizome.example.data; + +public class DepartmentData extends BaseData { + private String idDepartment; + private String nmDepartment; + + public String getIdDepartment() { + return idDepartment; + } + public void setIdDepartment(String idDepartment) { + this.idDepartment = idDepartment; + } + public String getNmDepartment() { + return nmDepartment; + } + public void setNmDepartment(String nmDepartment) { + this.nmDepartment = nmDepartment; + } + + public String toString() { + return this.getIdDepartment() + + "\t" + this.getNmDepartment(); + } + + public String toCSV() { + return this.getIdDepartment() + + "\t" + this.getNmDepartment(); + } + + public String getPrimaryKeyValue() { + return this.idDepartment; + } +} diff --git a/src/com/rhizome/example/main/Main.java b/src/com/rhizome/example/main/Main.java index a08fa53..d1bd910 100644 --- a/src/com/rhizome/example/main/Main.java +++ b/src/com/rhizome/example/main/Main.java @@ -1,12 +1,16 @@ package com.rhizome.example.main; +import java.io.BufferedReader; import java.io.FileNotFoundException; +import java.io.FileReader; import java.io.IOException; import java.util.List; import java.util.Scanner; +import com.rhizome.example.access.DepartmentAccess; import com.rhizome.example.access.EmployeeAccess; import com.rhizome.example.data.BaseData; +import com.rhizome.example.data.DepartmentData; import com.rhizome.example.data.EmployeeData; public class Main { @@ -18,7 +22,9 @@ public class Main { * @param args */ public static void main(String[] args) { + System.out.println("システムを開始します"); + //※1 while (true) { try { new Main().start(); @@ -36,28 +42,69 @@ public class Main { */ public void start() throws IOException { System.out.println(); - System.out.println("1:検索 2:登録 3:更新 4:削除 0:終了"); - String ope = sc.nextLine(); + System.out.println("1:検索 2:登録 3:更新 4:削除 9:データ切り替え 0:終了 (管理対象:Employee)"); + String ope = sc.nextLine(); //キーボードから読み取り switch (ope) { case "1": //検索 - empSelect(); - break; + System.out.println(" 1:全件検索 2:条件検索 それ以外:戻る"); + String choose = sc.nextLine(); //キーボードから読み取り + if(choose.equals("1")) { //1の時 + empSelect("all"); //引数all(文字列)を渡す + + }else if(choose.equals("2")) { //2の時 + empSelect(); //引数なし + } + break; case "2": //登録 empInsert(); - break; + break; case "3": //更新 empUpdate(); - break; + break; case "4": //削除 empDelete(); + break; + case "9": //切り替え + dptloop:while(true) { + System.out.println("1:検索 2:登録 3:更新 4:削除 9:データ切り替え 0:終了 (管理対象:Department)"); + String dope = sc.nextLine(); + switch (dope) { + case "1": //検索 + System.out.println(" 1:全件検索 2:条件検索 それ以外:戻る"); + String dptchoose = sc.nextLine(); + if(dptchoose.equals("1")) { + dptSelect("all"); //全検索 + }else if(dptchoose.equals("2")) { + dptSelect(); //条件検索 + } + break; + case "2": //登録 + dptInsert(); + break; + case "3": //更新 + dptUpdate(); + break; + case "4": //削除 + dptDelete(); + break; + case "9": //切り替え + break dptloop; + case "0": //終了 + System.out.println("システムを終了します"); + System.exit(0); + default: + System.out.println("指定の番号を入力してください"); + continue; //※2戻る + } + } break; case "0": //修了 System.out.println("システムを終了します"); System.exit(0); default: System.out.println("指定の番号を入力してください"); - break; + break; } } @@ -84,6 +131,50 @@ public class Main { System.out.println(employee.toString()); } } + //throwsで例外が起きたときにメインメソッドで処理できるようにする + public void empSelect(String str)throws FileNotFoundException { //allを受け取るメソッド + + //try-catchで例外処理+try-with-resourcesでファイルを自動で閉じる + //csvファイルを読み込みreaderの変数へ代入 + try (BufferedReader reader = new BufferedReader(new FileReader("file/EmployeeData.csv"))) { + String line; //変数定義 + //ファイルから読み込んだ1行をlineに代入しnullじゃない間ループ + while((line = reader.readLine())!= null) { + System.out.println(line); //lineを出力 + } + }catch(IOException e) { //エラーの受け取りと処理 + System.out.println("ファイルの読み込み中にエラーが発生しました"); + e.printStackTrace(); //エラーの内容を詳しく表示する処理 + + } + + } + + public void dptSelect() throws FileNotFoundException { + DepartmentAccess da = new DepartmentAccess(); + List list; + String id = inputCheck("ID", true); + list = da.selectById(id); + if (list.size() == 0) { + System.out.println("入力された値で情報がみつかりませんでした"); + } + for (BaseData department : list) { + System.out.println(department.toString()); + } + } + + public void dptSelect(String str) throws FileNotFoundException { + try (BufferedReader dptreader = new BufferedReader(new FileReader("file/DepartmentData.csv"))) { + String line; + while((line = dptreader.readLine())!= null) { + System.out.println(line); + } + }catch(IOException e) { + System.out.println("ファイルの読み込み中にエラーが発生しました"); + e.printStackTrace(); + } + + } /** * 社員ファイルに情報を登録する @@ -113,6 +204,18 @@ public class Main { ea.insert(employee); System.out.println("登録が完了しました"); } + + public void dptInsert() throws IOException { + String depId = inputCheck("部署ID", true); + String depName = inputCheck("部署名", false); + DepartmentData dpt = new DepartmentData(); + dpt.setIdDepartment(depId); + dpt.setNmDepartment(depName); + + DepartmentAccess da = new DepartmentAccess(); + da.insert(dpt); + System.out.println("登録が完了しました"); + } /** * 社員ファイルの情報を更新する @@ -150,6 +253,25 @@ public class Main { ea.update(employee); System.out.println("更新が完了しました"); } + + public void dptUpdate() throws IOException { + DepartmentAccess da = new DepartmentAccess(); + String dptid = inputCheck("ID", true); + if (da.selectById(dptid).size() == 0) { + System.out.println("入力された値で情報がみつかりませんでした"); + return; + } + + String depId = inputCheck("部署ID", true); + String depName = inputCheck("部署名前", true); + + DepartmentData dpt = new DepartmentData(); + dpt.setIdDepartment(depId); + dpt.setNmDepartment(depName); + + da.update(dpt); + System.out.println("更新が完了しました"); + } /** * 社員ファイルの情報を削除する @@ -178,6 +300,25 @@ public class Main { System.out.println("削除が完了しました"); } + public void dptDelete() throws IOException { + DepartmentAccess da = new DepartmentAccess(); + String dptid = inputCheck("ID", true); + if (da.selectById(dptid).size() == 0) { + System.out.println("入力された値で情報がみつかりませんでした"); + return; + } + System.out.println("指定されたIDの情報を削除します? Y/y"); + System.out.println("(Y/y以外の入力であればキャンセル)"); + String yY = sc.nextLine(); + if (!"y".equals(yY) && !"Y".equals(yY)) { + System.out.println("削除をキャンセルしました"); + return; + } + + da.delete(dptid); + System.out.println("削除が完了しました"); + } + /** * 入力値を判定し、返却する *