10段階目まで完了済
This commit is contained in:
@@ -15,7 +15,18 @@ public class DepartmentDAO {
|
||||
private static final String TBL_NAME = "department";
|
||||
private static final String ID_DEPARTMENT = "id_department";
|
||||
private static final String NM_DEPARTMENT = "nm_department";
|
||||
|
||||
|
||||
/** アクセサ */
|
||||
public static String getTblName() {
|
||||
return TBL_NAME;
|
||||
}
|
||||
public static String getIdColumnName() {
|
||||
return ID_DEPARTMENT;
|
||||
}
|
||||
public static String getNmColumnName() {
|
||||
return NM_DEPARTMENT;
|
||||
}
|
||||
|
||||
/** DBコネクション */
|
||||
public Connection con;
|
||||
/** DBステートメント */
|
||||
@@ -91,7 +102,44 @@ public class DepartmentDAO {
|
||||
nRecords++;
|
||||
}
|
||||
if (nRecords==0) {
|
||||
System.out.println("入力された値で情報がみつかりませんでした");
|
||||
System.out.println("入力された部署IDで情報がみつかりませんでした");
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
return rtnList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 部署テーブルから指定された部署名に一致するデータを全件取得する
|
||||
*
|
||||
* @return 検索結果
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public List<DepartmentDTO> selectByNm(String NmDepartment) throws SQLException, ClassNotFoundException {
|
||||
List<DepartmentDTO> rtnList = new ArrayList<>();
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" " + "*");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" " + NM_DEPARTMENT + " LIKE " + " CONCAT('%',?,'%') ");
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,NmDepartment);
|
||||
rs = stmt.executeQuery();
|
||||
int nRecords = 0;
|
||||
while (rs.next()) {
|
||||
DepartmentDTO Department = new DepartmentDTO();
|
||||
Department.setIdDepartment(rs.getInt(ID_DEPARTMENT));
|
||||
Department.setNmDepartment(rs.getString(NM_DEPARTMENT));
|
||||
rtnList.add(Department);
|
||||
nRecords++;
|
||||
}
|
||||
if (nRecords==0) {
|
||||
System.out.println("入力された部署名で情報がみつかりませんでした");
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
@@ -107,10 +155,10 @@ public class DepartmentDAO {
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public String getNmDepartment(int idDepartment) throws SQLException, ClassNotFoundException {
|
||||
String name = Integer.toString(idDepartment); // 部署名が見つからない場合は部署IDを返却する
|
||||
Connection con = DbUtil.getConnection();
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
if(depDao.selectById(idDepartment).size()!=0) {
|
||||
String name = "";
|
||||
if(depDao.selectById(idDepartment).size()==1) {
|
||||
DepartmentDTO department = depDao.selectById(idDepartment).get(0);
|
||||
name = department.getNmDepartment();
|
||||
};
|
||||
@@ -157,16 +205,22 @@ public class DepartmentDAO {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" INSERT INTO ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" ("+NM_DEPARTMENT+") ");
|
||||
sql.append(" (" + NM_DEPARTMENT + ") ");
|
||||
sql.append(" VALUES ");
|
||||
sql.append(" ( ? ) ");
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("登録が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
System.out.println("指定された情報を登録しますか? Y/y");
|
||||
System.out.println("(Y/y以外の入力であればキャンセル)");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
String flag = sc.nextLine();
|
||||
if (flag.equals("Y")||flag.equals("y")) {
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("登録が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,14 +231,18 @@ public class DepartmentDAO {
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public void depUpdate(int idDepartment, String name) throws SQLException, ClassNotFoundException {
|
||||
if (selectById(idDepartment).size()!=0) {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" UPDATE ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" SET ");
|
||||
sql.append(" "+NM_DEPARTMENT+" = ?"+" ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" " + ID_DEPARTMENT + " = " + "?");
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" UPDATE ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" SET ");
|
||||
sql.append(" " + NM_DEPARTMENT + " = " + "?" + " ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" " + ID_DEPARTMENT + " = " + "?");
|
||||
System.out.println("指定されたIDの情報を更新しますか? Y/y");
|
||||
System.out.println("(Y/y以外の入力であればキャンセル)");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
String flag = sc.nextLine();
|
||||
if (flag.equals("Y")||flag.equals("y")) {
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
|
||||
@@ -14,6 +14,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
import com.rhizome.example.dto.DepartmentDTO;
|
||||
import com.rhizome.example.dto.EmployeeDTO;
|
||||
import com.rhizome.example.util.DbUtil;
|
||||
|
||||
@@ -109,7 +110,120 @@ public class EmployeeDAO {
|
||||
nRecords++;
|
||||
}
|
||||
if (nRecords==0) {
|
||||
System.out.println("入力された値で情報がみつかりませんでした");
|
||||
System.out.println("入力された社員IDで情報がみつかりませんでした");
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
return rtnList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 社員テーブルから条件に一致するデータを全件取得する(AND検索)
|
||||
*
|
||||
* @return 検索結果
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
/**/
|
||||
// 部署ID入力
|
||||
public List<EmployeeDTO> empSelect(int idEmployee, String name, String kn, String mailaddress, String password, int idDepartment) throws SQLException, ClassNotFoundException {
|
||||
List<EmployeeDTO> rtnList = new ArrayList<>();
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" " + "*");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" WHERE ");
|
||||
if (idEmployee!=0) sql.append(" " + ID_EMPLOYEE + " = " + "?" + "AND");
|
||||
if (name.trim().length()!=0) sql.append(" " + NM_EMPLOYEE + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (kn.trim().length()!=0) sql.append(" " + KN_EMPLOYEE + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (mailaddress.trim().length()!=0) sql.append(" " + MAIL_ADDRESS + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (password.trim().length()!=0) sql.append(" " + PASSWORD + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (idDepartment!=0) sql.append(" " + ID_DEPARTMENT + " = " + "?" + "AND");
|
||||
sql.delete(sql.length()-3, sql.length()); // 末尾"AND"を削除する
|
||||
try {
|
||||
int nConditions = 0;
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
if (idEmployee!=0) stmt.setInt(++nConditions, idEmployee);
|
||||
if (name.trim().length()!=0) stmt.setString(++nConditions, name);
|
||||
if (kn.trim().length()!=0) stmt.setString(++nConditions, kn);
|
||||
if (mailaddress.trim().length()!=0) stmt.setString(++nConditions, mailaddress);
|
||||
if (password.trim().length()!=0) stmt.setString(++nConditions, password);
|
||||
if (idDepartment!=0) stmt.setInt(++nConditions, idDepartment);
|
||||
if (nConditions==0) {
|
||||
System.out.println("情報が入力されていません");
|
||||
} else {
|
||||
rs = stmt.executeQuery();
|
||||
int nRecords = 0;
|
||||
while (rs.next()) {
|
||||
EmployeeDTO employee = new EmployeeDTO();
|
||||
employee.setIdEmployee(rs.getInt(ID_EMPLOYEE));
|
||||
employee.setNmEmployee(rs.getString(NM_EMPLOYEE));
|
||||
employee.setKnEmployee(rs.getString(KN_EMPLOYEE));
|
||||
employee.setMailaddress(rs.getString(MAIL_ADDRESS));
|
||||
employee.setPassword(rs.getString(PASSWORD));
|
||||
employee.setIdDepartment(rs.getInt(ID_DEPARTMENT));
|
||||
rtnList.add(employee);
|
||||
nRecords++;
|
||||
}
|
||||
if (nRecords==0) {
|
||||
System.out.println("入力された社員情報で情報がみつかりませんでした");
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
return rtnList;
|
||||
}
|
||||
// 部署名入力
|
||||
public List<EmployeeDTO> empSelect(int idEmployee, String name, String kn, String mailaddress, String password, String nmDepartment) throws SQLException, ClassNotFoundException {
|
||||
List<EmployeeDTO> rtnList = new ArrayList<>();
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" " + "*");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
if (nmDepartment.trim().length()!=0) { // テーブル結合
|
||||
sql.append(" INNER JOIN " + DepartmentDAO.getTblName() + " ON ");
|
||||
sql.append(TBL_NAME+"."+ID_DEPARTMENT + " = " + DepartmentDAO.getTblName()+"."+DepartmentDAO.getIdColumnName());
|
||||
}
|
||||
sql.append(" WHERE ");
|
||||
if (idEmployee!=0) sql.append(" " + ID_EMPLOYEE + " = " + "?" + "AND");
|
||||
if (name.trim().length()!=0) sql.append(" " + NM_EMPLOYEE + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (kn.trim().length()!=0) sql.append(" "+KN_EMPLOYEE + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (mailaddress.trim().length()!=0) sql.append(" " + MAIL_ADDRESS + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (password.trim().length()!=0) sql.append(" " + PASSWORD + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
if (nmDepartment.trim().length()!=0) sql.append(" " + DepartmentDAO.getNmColumnName() + " LIKE " + " CONCAT('%',?,'%')" + "AND");
|
||||
sql.delete(sql.length()-3, sql.length()); // 末尾"AND"を削除する
|
||||
try {
|
||||
int nConditions = 0;
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
if (idEmployee!=0) stmt.setInt(++nConditions, idEmployee);
|
||||
if (name.trim().length()!=0) stmt.setString(++nConditions, name);
|
||||
if (kn.trim().length()!=0) stmt.setString(++nConditions, kn);
|
||||
if (mailaddress.trim().length()!=0) stmt.setString(++nConditions, mailaddress);
|
||||
if (password.trim().length()!=0) stmt.setString(++nConditions, password);
|
||||
if (nmDepartment.trim().length()!=0) stmt.setString(++nConditions, nmDepartment);
|
||||
if (nConditions==0) {
|
||||
System.out.println("情報が入力されていません");
|
||||
} else {
|
||||
rs = stmt.executeQuery();
|
||||
int nRecords = 0;
|
||||
while (rs.next()) {
|
||||
EmployeeDTO employee = new EmployeeDTO();
|
||||
employee.setIdEmployee(rs.getInt(ID_EMPLOYEE));
|
||||
employee.setNmEmployee(rs.getString(NM_EMPLOYEE));
|
||||
employee.setKnEmployee(rs.getString(KN_EMPLOYEE));
|
||||
employee.setMailaddress(rs.getString(MAIL_ADDRESS));
|
||||
employee.setPassword(rs.getString(PASSWORD));
|
||||
employee.setIdDepartment(rs.getInt(ID_DEPARTMENT));
|
||||
rtnList.add(employee);
|
||||
nRecords++;
|
||||
}
|
||||
if (nRecords==0) {
|
||||
System.out.println("入力された社員情報で情報がみつかりませんでした");
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
@@ -153,24 +267,68 @@ public class EmployeeDAO {
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
// 部署ID入力
|
||||
public void empInsert(String name, String kn, String mailaddress, String password, int idDepartment) throws SQLException, ClassNotFoundException {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" INSERT INTO ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" ("+NM_EMPLOYEE+", "+KN_EMPLOYEE+","+MAIL_ADDRESS+","+PASSWORD+","+ID_DEPARTMENT+") ");
|
||||
sql.append(" VALUES ");
|
||||
sql.append(" (?, ?, ?, ?, ?) ");
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.setString(2,kn);
|
||||
stmt.setString(3,mailaddress);
|
||||
stmt.setString(4,password);
|
||||
stmt.setInt(5,idDepartment);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("登録が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
if (depDao.selectById(idDepartment).size()!=0) { // 存在しない部署IDが入力されたときは登録処理を行わない
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" INSERT INTO ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" (" + NM_EMPLOYEE + "," + KN_EMPLOYEE + "," + MAIL_ADDRESS + "," + PASSWORD + "," + ID_DEPARTMENT + ") ");
|
||||
sql.append(" VALUES ");
|
||||
sql.append(" (?, ?, ?, ?, ?) ");
|
||||
System.out.println("指定された情報を登録しますか? Y/y");
|
||||
System.out.println("(Y/y以外の入力であればキャンセル)");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
String flag = sc.nextLine();
|
||||
if (flag.equals("Y")||flag.equals("y")) {
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.setString(2,kn);
|
||||
stmt.setString(3,mailaddress);
|
||||
stmt.setString(4,password);
|
||||
stmt.setInt(5,idDepartment);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("登録が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 部署名入力
|
||||
public void empInsert(String name, String kn, String mailaddress, String password, String nmDepartment) throws SQLException, ClassNotFoundException {
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
List<DepartmentDTO> rtnList = depDao.selectByNm(nmDepartment);
|
||||
if (rtnList.size()==1) { // 部署名が特定できないときは登録処理を行わない
|
||||
DepartmentDTO department = rtnList.get(0);
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" INSERT INTO ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" (" + NM_EMPLOYEE + "," + KN_EMPLOYEE + "," + MAIL_ADDRESS + "," + PASSWORD + "," + ID_DEPARTMENT + ") ");
|
||||
sql.append(" VALUES ");
|
||||
sql.append(" (?, ?, ?, ?, ?) ");
|
||||
System.out.println("指定された情報を登録しますか? Y/y");
|
||||
System.out.println("(Y/y以外の入力であればキャンセル)");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
String flag = sc.nextLine();
|
||||
if (flag.equals("Y")||flag.equals("y")) {
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.setString(2,kn);
|
||||
stmt.setString(3,mailaddress);
|
||||
stmt.setString(4,password);
|
||||
stmt.setInt(5,department.getIdDepartment());
|
||||
stmt.executeUpdate();
|
||||
System.out.println("登録が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
}
|
||||
} else if (rtnList.size()>1) {
|
||||
System.out.println("入力された情報で部署を1つに特定できません");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,33 +338,92 @@ public class EmployeeDAO {
|
||||
* @throws SQLException
|
||||
* @throws ClassNotFoundException
|
||||
*/
|
||||
// 部署ID入力
|
||||
public void empUpdate(int idEmployee, String name, String kn, String mailaddress, String password, int idDepartment) throws SQLException, ClassNotFoundException {
|
||||
if (selectById(idEmployee).size()!=0) {
|
||||
EmployeeDTO employee = selectById(idEmployee).get(0);
|
||||
if (name.trim().length()==0) name = employee.getNmEmployee();
|
||||
if (kn.trim().length()==0) kn = employee.getKnEmployee();
|
||||
if (mailaddress.trim().length()==0) mailaddress = employee.getMailaddress();
|
||||
if (password.trim().length()==0) password = employee.getPassword();
|
||||
if (idDepartment==0) idDepartment = employee.getIdDepartment();
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
if (depDao.selectById(idDepartment).size()!=0) { // 存在しない部署IDが入力されたときは更新処理を行わない
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" UPDATE ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" SET ");
|
||||
sql.append(" "+NM_EMPLOYEE+" = ?"+",");
|
||||
sql.append(" "+KN_EMPLOYEE+" = ?"+",");
|
||||
sql.append(" "+MAIL_ADDRESS+" = ?"+",");
|
||||
sql.append(" "+PASSWORD+" = ?"+",");
|
||||
sql.append(" "+ID_DEPARTMENT+" = ?");
|
||||
sql.append(" " + NM_EMPLOYEE + " = " + "?" + ",");
|
||||
sql.append(" " + KN_EMPLOYEE + " = " + "?" +",");
|
||||
sql.append(" " + MAIL_ADDRESS + " = " + "?" + ",");
|
||||
sql.append(" " + PASSWORD + " = " + "?" + ",");
|
||||
sql.append(" " + ID_DEPARTMENT + " = " + "?");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" " + ID_EMPLOYEE + " = " + "?");
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.setString(2,kn);
|
||||
stmt.setString(3,mailaddress);
|
||||
stmt.setString(4,password);
|
||||
stmt.setInt(5,idDepartment);
|
||||
stmt.setInt(6,idEmployee);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("更新が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
System.out.println("指定されたIDの情報を更新しますか? Y/y");
|
||||
System.out.println("(Y/y以外の入力であればキャンセル)");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
String flag = sc.nextLine();
|
||||
if (flag.equals("Y")||flag.equals("y")) {
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.setString(2,kn);
|
||||
stmt.setString(3,mailaddress);
|
||||
stmt.setString(4,password);
|
||||
stmt.setInt(5,idDepartment);
|
||||
stmt.setInt(6,idEmployee);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("更新が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 部署名入力
|
||||
public void empUpdate(int idEmployee, String name, String kn, String mailaddress, String password, String NmDepartment) throws SQLException, ClassNotFoundException {
|
||||
EmployeeDTO employee = selectById(idEmployee).get(0);
|
||||
if (name.trim().length()==0) name = employee.getNmEmployee();
|
||||
if (kn.trim().length()==0) kn = employee.getKnEmployee();
|
||||
if (mailaddress.trim().length()==0) mailaddress = employee.getMailaddress();
|
||||
if (password.trim().length()==0) password = employee.getPassword();
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
List<DepartmentDTO> rtnList = depDao.selectByNm(NmDepartment);
|
||||
if (rtnList.size()==1) { // 部署名が特定できないときは登録処理を行わない
|
||||
DepartmentDTO department = rtnList.get(0);
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append(" UPDATE ");
|
||||
sql.append(" " + TBL_NAME);
|
||||
sql.append(" SET ");
|
||||
sql.append(" " + NM_EMPLOYEE + " = " + "?" + ",");
|
||||
sql.append(" " + KN_EMPLOYEE + " = " + "?" + ",");
|
||||
sql.append(" " + MAIL_ADDRESS + " = " + "?" + ",");
|
||||
sql.append(" " + PASSWORD + " = " + "?" + ",");
|
||||
sql.append(" " + ID_DEPARTMENT + " = " + "?");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" " + ID_EMPLOYEE + " = " + "?");
|
||||
System.out.println("指定されたIDの情報を更新しますか? Y/y");
|
||||
System.out.println("(Y/y以外の入力であればキャンセル)");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
String flag = sc.nextLine();
|
||||
if (flag.equals("Y")||flag.equals("y")) {
|
||||
try {
|
||||
this.stmt = con.prepareStatement(sql.toString());
|
||||
stmt.setString(1,name);
|
||||
stmt.setString(2,kn);
|
||||
stmt.setString(3,mailaddress);
|
||||
stmt.setString(4,password);
|
||||
stmt.setInt(5,department.getIdDepartment());
|
||||
stmt.setInt(6,idEmployee);
|
||||
stmt.executeUpdate();
|
||||
System.out.println("更新が完了しました");
|
||||
} finally {
|
||||
DbUtil.closeStatement(this.stmt);
|
||||
}
|
||||
}
|
||||
} else if (rtnList.size()>1) {
|
||||
System.out.println("入力された情報で部署を1つに特定できません");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.rhizome.example.main;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
@@ -94,14 +95,33 @@ public class MainNew {
|
||||
empList = empDao.selectAll();
|
||||
break;
|
||||
case "2":
|
||||
empList = empDao.selectById(Integer.parseInt(inputCheck("社員ID", true)));
|
||||
String infoEmployee = inputCheck("社員ID", false, "AllowEmpty");
|
||||
int idEmployee = 0; // 未入力時は0を渡す
|
||||
try {
|
||||
idEmployee = Integer.parseInt(infoEmployee);
|
||||
} catch (NumberFormatException err) {}
|
||||
String name = inputCheck("社員名", false, "AllowEmpty");
|
||||
String kn = inputCheck("フリガナ", false, "AllowEmpty");
|
||||
String mailaddress = inputCheck("メールアドレス", false, "AllowEmpty");
|
||||
String password = inputCheck("パスワード", false, "AllowEmpty");
|
||||
String infoDepartment = (inputCheck("部署情報", false, "AllowEmpty"));
|
||||
try {
|
||||
int idDepartment = Integer.parseInt(infoDepartment);
|
||||
empList = empDao.empSelect(idEmployee, name, kn, mailaddress, password, idDepartment);
|
||||
} catch (NumberFormatException err) {
|
||||
if (infoDepartment.trim().length()==0) {
|
||||
empList = empDao.empSelect(idEmployee, name, kn, mailaddress, password, 0); // 未入力時は0を渡す
|
||||
} else {
|
||||
empList = empDao.empSelect(idEmployee, name, kn, mailaddress, password, infoDepartment);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
for (EmployeeDTO emp : empList) {
|
||||
System.out.println(emp);
|
||||
//System.out.println(toStringEmployee(emp)); // 出力文字調整:ongoing
|
||||
//System.out.println(emp);
|
||||
System.out.println(toStringEmployee(emp));
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeConnection(empDao.con);
|
||||
@@ -132,8 +152,8 @@ public class MainNew {
|
||||
return;
|
||||
}
|
||||
for (DepartmentDTO dep : depList) {
|
||||
System.out.println(dep);
|
||||
//System.out.println(toStringDepartment(dep)); // 出力文字調整:ongoing
|
||||
//System.out.println(dep);
|
||||
System.out.println(toStringDepartment(dep));
|
||||
}
|
||||
} finally {
|
||||
DbUtil.closeConnection(depDao.con);
|
||||
@@ -185,11 +205,17 @@ public class MainNew {
|
||||
Connection con = DbUtil.getConnection();
|
||||
if (tblFlg == 0) {
|
||||
EmployeeDAO empDao = new EmployeeDAO(con);
|
||||
empDao.empInsert(inputCheck("社員名", false),
|
||||
inputCheck("フリガナ", false),
|
||||
inputCheck("メールアドレス", false),
|
||||
inputCheck("パスワード", false),
|
||||
inputCheckIdDepartmentRep()); // 部署IDと照合できるまで入力を受け付ける
|
||||
String name = inputCheck("社員名", false);
|
||||
String kn = inputCheck("フリガナ", false);
|
||||
String mailaddress = inputCheck("メールアドレス", false);
|
||||
String password = inputCheck("パスワード", false);
|
||||
String infoDepartment = inputCheck("部署情報", false);
|
||||
try {
|
||||
int idDepartment = Integer.parseInt(infoDepartment);
|
||||
empDao.empInsert(name, kn, mailaddress, password, idDepartment);
|
||||
} catch (NumberFormatException err) {
|
||||
empDao.empInsert(name, kn, mailaddress, password, infoDepartment);
|
||||
}
|
||||
} else {
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
depDao.depInsert(inputCheck("部署名", false));
|
||||
@@ -208,15 +234,24 @@ public class MainNew {
|
||||
Connection con = DbUtil.getConnection();
|
||||
if (tblFlg == 0) {
|
||||
EmployeeDAO empDao = new EmployeeDAO(con);
|
||||
int id = Integer.parseInt(inputCheck("社員ID", true));
|
||||
if (empDao.selectById(id).size()==0) {} // 社員IDの照合に失敗した場合は更新処理を行わない
|
||||
int idEmployee = Integer.parseInt(inputCheck("社員ID", true));
|
||||
if (empDao.selectById(idEmployee).size()==0) {} // 社員IDの照合に失敗した場合は更新処理を行わない
|
||||
else {
|
||||
empDao.empUpdate(id,
|
||||
inputCheck("社員名", false),
|
||||
inputCheck("フリガナ", false),
|
||||
inputCheck("メールアドレス", false),
|
||||
inputCheck("パスワード", false),
|
||||
inputCheckIdDepartmentRep()); // 部署IDと照合できるまで入力を受け付ける
|
||||
String name = inputCheck("社員名", false, "AllowEmpty");
|
||||
String kn = inputCheck("フリガナ", false, "AllowEmpty");
|
||||
String mailaddress = inputCheck("メールアドレス", false, "AllowEmpty");
|
||||
String password = inputCheck("パスワード", false, "AllowEmpty");
|
||||
String infoDepartment = (inputCheck("部署情報", false, "AllowEmpty"));
|
||||
try {
|
||||
int idDepartment = Integer.parseInt(infoDepartment);
|
||||
empDao.empUpdate(idEmployee, name, kn, mailaddress, password, idDepartment);
|
||||
} catch (NumberFormatException err) {
|
||||
if (infoDepartment.trim().length()==0) {
|
||||
empDao.empUpdate(idEmployee, name, kn, mailaddress, password, 0); // 未入力時は0を渡す
|
||||
} else {
|
||||
empDao.empUpdate(idEmployee, name, kn, mailaddress, password, infoDepartment);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
@@ -253,10 +288,10 @@ public class MainNew {
|
||||
*
|
||||
* @param tblFlg
|
||||
* テーブル名判定用フラグ
|
||||
* @return 変更後フラグ
|
||||
* @return 変更後テーブル名判定用フラグ
|
||||
*/
|
||||
public static int ChangeTable(int tblFlg) {
|
||||
if (tblFlg == 0) {
|
||||
if (tblFlg==0) {
|
||||
tblFlg = 1;
|
||||
} else {
|
||||
tblFlg = 0;
|
||||
@@ -271,8 +306,9 @@ public class MainNew {
|
||||
* 入力項目名
|
||||
* @param flg
|
||||
* 数値チェック可否フラグ
|
||||
* @return
|
||||
* @return 入力内容
|
||||
*/
|
||||
// 入力必須
|
||||
public static String inputCheck(String titleName, boolean flg) {
|
||||
String str = null;
|
||||
while (true) {
|
||||
@@ -296,50 +332,30 @@ public class MainNew {
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* 入力値と社員IDを照合し、返却する(照合できるまで入力を受け付ける)
|
||||
*
|
||||
* @throws ClassNotFoundException
|
||||
* @throws SQLException
|
||||
* @return
|
||||
*/
|
||||
public static int inputCheckIdEmployeeRep() throws ClassNotFoundException, SQLException {
|
||||
int id;
|
||||
Connection con = DbUtil.getConnection();
|
||||
EmployeeDAO empDao = new EmployeeDAO(con);
|
||||
// 未入力許可
|
||||
public static String inputCheck(String titleName, boolean flg, String AllowEmpty) {
|
||||
String str = null;
|
||||
while (true) {
|
||||
id = Integer.parseInt(inputCheck("社員ID", true));
|
||||
if (empDao.selectById(id).size()!=0) {
|
||||
break;
|
||||
System.out.println(titleName + "を入力してください");
|
||||
str = sc.nextLine();
|
||||
if (flg) {
|
||||
if (str.trim().length() > 0) {
|
||||
try {
|
||||
Integer.parseInt(str);
|
||||
} catch (NumberFormatException e) {
|
||||
System.out.println(titleName + "は数値入力です");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 入力値と部署IDを照合し、返却する(照合できるまで入力を受け付ける)
|
||||
*
|
||||
* @throws ClassNotFoundException
|
||||
* @throws SQLException
|
||||
* @return
|
||||
*/
|
||||
public static int inputCheckIdDepartmentRep() throws ClassNotFoundException, SQLException {
|
||||
int id;
|
||||
Connection con = DbUtil.getConnection();
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
while (true) {
|
||||
id = Integer.parseInt(inputCheck("部署ID", true));
|
||||
if (depDao.selectById(id).size()!=0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return id;
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* 社員テーブルの出力文字列を生成する
|
||||
* ・縦の線が揃うように位置を調整する
|
||||
* ・各列の横幅が揃うように位置を調整する
|
||||
* ・部署IDを部署名に変更する
|
||||
*
|
||||
* @throws ClassNotFoundException
|
||||
@@ -349,58 +365,49 @@ public class MainNew {
|
||||
public static String toStringEmployee(EmployeeDTO employee) throws ClassNotFoundException, SQLException {
|
||||
Connection con = DbUtil.getConnection();
|
||||
DepartmentDAO depDao = new DepartmentDAO(con);
|
||||
return fixCharCount(8, employee.getIdEmployee())
|
||||
+fixCharCountFull(8, employee.getNmEmployee())
|
||||
+fixCharCountFull(12, employee.getKnEmployee())
|
||||
+fixCharCount(20, employee.getMailaddress())
|
||||
+fixCharCount(12, employee.getPassword())
|
||||
+fixCharCountFull(8, depDao.getNmDepartment(employee.getIdDepartment()));
|
||||
return format(8, employee.getIdEmployee())
|
||||
+format(16, employee.getNmEmployee())
|
||||
+format(24, employee.getKnEmployee())
|
||||
+format(24, employee.getMailaddress())
|
||||
+format(8, employee.getPassword())
|
||||
+format(16, depDao.getNmDepartment(employee.getIdDepartment()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 部署テーブルの出力文字列を生成する
|
||||
* ・縦の線が揃うように位置を調整する
|
||||
* ・各列の横幅が揃うように位置を調整する
|
||||
*
|
||||
*
|
||||
* @throws ClassNotFoundException
|
||||
* @throws SQLException
|
||||
* @return 出力文字列
|
||||
*/
|
||||
public static String toStringDepartment(DepartmentDTO department) throws ClassNotFoundException, SQLException {
|
||||
return fixCharCount(8, department.getIdDepartment())
|
||||
+fixCharCountFull(12, department.getNmDepartment());
|
||||
return format(8, department.getIdDepartment())
|
||||
+format(12, department.getNmDepartment());
|
||||
}
|
||||
|
||||
/**
|
||||
* 入力文字列の文字数が一定になるように空白を追加する(半角文字/数字/全角文字)
|
||||
* 出力文字数の表示幅が一定になるように空白を追加する
|
||||
*
|
||||
* @return
|
||||
* @param bytelength
|
||||
* 指定表示幅
|
||||
* @param input
|
||||
* 空白を追加する文字列
|
||||
* @return 空白を追加した文字列
|
||||
*/
|
||||
public static String fixCharCount(int nChars, String input) {
|
||||
if (nChars-input.length()>=0) {
|
||||
for (int i=0; i<nChars-input.length(); i++) {
|
||||
input = input + " ";
|
||||
}
|
||||
// 文字列入力
|
||||
public static String format(int bytelength, String input) {
|
||||
int diff = (input.getBytes(Charset.forName("UTF-8")).length - input.length())/2; // diff=全角文字(3byte)→文字数/半角文字(1byte)→0
|
||||
if (bytelength-diff>=0) {
|
||||
return String.format("%-"+(bytelength-diff)+"s", input); // 表示幅=指定幅-全角文字表示に必要な追加表示幅
|
||||
} else {
|
||||
return input;
|
||||
}
|
||||
return input;
|
||||
}
|
||||
public static String fixCharCount(int nChars, int id) {
|
||||
// 整数入力
|
||||
public static String format(int bytelength, int id) {
|
||||
String input = Integer.toString(id);
|
||||
if (nChars-input.length()>=0) {
|
||||
for (int i=0; i<nChars-input.length(); i++) {
|
||||
input = input + " ";
|
||||
}
|
||||
}
|
||||
return input;
|
||||
}
|
||||
public static String fixCharCountFull(int nChars, String input) {
|
||||
if (nChars-input.length()>=0) {
|
||||
System.out.println(nChars-input.length());
|
||||
for (int i=0; i<nChars-input.length(); i++) {
|
||||
input = input + " ";
|
||||
}
|
||||
}
|
||||
return input;
|
||||
return format(bytelength, input);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user