// 연수행사(답글) 뷰페이지 @RequestMapping("/trainingEventRepView.do") public String trainingEventRepView(HttpServletRequest request1, HttpSession session) throws SQLException { // -------------------------------------------------------------------------------------------------------------------// /*seq, currentPage, searchingNow (+ searchType, userinput) 의 변수값을 초기화 한다.*/ int seq = Integer.parseInt(request1.getParameter("seq")); if (null == request1.getParameter("currentPage")) { currentPage = 1; } else { currentPage = Integer.parseInt(request1.getParameter("currentPage")); } searchingNow = Integer.parseInt(request1.getParameter("searchingNow")); // 검색일 경우 존재하는 변수 초기화 if (searchingNow == 1) { searchType = request1.getParameter("searchType"); userinput = request1.getParameter("userinput"); // 뷰로 아래의 변수 3개를 보내는 이유는 // 목록을 클릭했을 때 다시 검색중인 리스트로 돌아가기 위함이다. +위의 currentPage와 함께! request1.setAttribute("searchType", searchType); request1.setAttribute("userinput", userinput); request1.setAttribute("searchingNow", 1); } else { // 검색중이 아닌경우에는 아래의 변수값이 존재하지 않음을 의미하는 0을 초기화 시켜서 해당 jsp 로 보낸다. request1.setAttribute("searchType", 0); request1.setAttribute("userinput", 0); request1.setAttribute("searchingNow", 0); } // .-------------------------------------------------------------------------------------------------------------------// // -------------------------------------------------------------------------------------------------------------------// /*조회수 +1 하기*/ // 조회수 +1 시킬 레코드를 불러온다. resultClass = (TrainingEventDTO) sqlMapper.queryForObject("TrainingEvent.selectTrainingEventOne", seq); // 뷰페이지의 조회수를 +1 업데이트 paramClass.setSeq(seq); paramClass.setHits(resultClass.getHits() + 1); sqlMapper.update("TrainingEvent.updateHits", paramClass); // .-------------------------------------------------------------------------------------------------------------------// // 뷰페이지에 보여질 레코드 1개를 get resultClass = (TrainingEventDTO) sqlMapper.queryForObject("TrainingEvent.selectTrainingEventOne", seq); request1.setAttribute("seq", seq); request1.setAttribute("currentPage", currentPage); request1.setAttribute("searchingNow", searchingNow); request1.setAttribute("resultClass", resultClass); // 레코드1개 return "/view/menu7/trainingEvent/trainingEventRepView.jsp"; }
public ArrayList<ArrayList> moveChanges() { ArrayList<ArrayList> res = new ArrayList<ArrayList>(0); try { for (int i = 0; i < idch.getChangesetID().size(); ++i) { Integer old_ch = (Integer) idch.getChangesetID().get(i).get(0); Integer new_ch = (Integer) idch.getChangesetID().get(i).get(1); List lst = client.queryForList("GetChanges", new ParamHelper(s_db, old_ch)); for (int j = 0; j < lst.size(); ++j) { Change c = (Change) lst.get(j); c.setT_db(t_db); c.setChangeset_id(new_ch); client.insert("insertChange", c); res.add(new ArrayList(0)); int newID = (Integer) client.queryForObject("LastInsertId", new ParamHelper(t_db, "changes")); res.get(res.size() - 1).add(c.getId()); res.get(res.size() - 1).add(newID); } } } catch (Exception e) { logger.error("in moveChanges", e); JOptionPane.showMessageDialog( null, e.getMessage() + e.getStackTrace(), "Беда!", JOptionPane.ERROR_MESSAGE); // e.printStackTrace(); } return res; }
public NoticeVO getTitleInfo(int no) throws Exception { SqlMapClient sqlmap = IbatisUtil.getSqlmap(); NoticeVO notice = (NoticeVO) sqlmap.queryForObject("getTitleInfo", no); return notice; }
/* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getTableScript(com.hangum.tadpole.dao.mysql.TableDAO) */ @Override public String getTableScript(TableDAO tableDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); Map srcList = (HashMap) client.queryForObject("getTableScript", tableDAO.getName()); return "" + srcList.get("Create Table"); }
public ArrayList<ArrayList> moveRepositories() { ArrayList<ArrayList> res = new ArrayList<ArrayList>(0); int old_prj = (Integer) idch.getProjectID().get(0).get(0); int new_prj = (Integer) idch.getProjectID().get(0).get(1); try { List lst = client.queryForList("GetRepositoriesForIssue", new ParamHelper(s_db, old_prj)); for (int i = 0; i < lst.size(); ++i) { Repository r = (Repository) lst.get(i); r.setProject_id(new_prj); r.setT_db(t_db); client.insert("insertRepository", r); res.add(new ArrayList(0)); int newID = (Integer) client.queryForObject("LastInsertId", new ParamHelper(t_db, "repositories")); res.get(res.size() - 1).add(r.getId()); res.get(res.size() - 1).add(newID); } } catch (Exception e) { logger.error("in moveRepositories", e); JOptionPane.showMessageDialog( null, e.getMessage() + e.getStackTrace(), "Беда!", JOptionPane.ERROR_MESSAGE); // e.printStackTrace(); } return res; }
public int getTotalRow(int no) throws Exception { SqlMapClient sqlmap = IbatisUtil.getSqlmap(); int totalRow = (Integer) sqlmap.queryForObject("getTotalRow", no); return totalRow; }
/** * This method was generated by MyBatis Generator. This method corresponds to the database table * SELL_MEDIA * * @mbggenerated Mon Oct 29 16:37:30 ART 2012 */ public SellMedia selectSellMediaByPrimaryKey(Integer id) throws SQLException { SellMedia _key = new SellMedia(); _key.setId(id); SellMedia record = (SellMedia) sqlMapClient.queryForObject("SELL_MEDIA.selectByPrimaryKey", _key); return record; }
/** * This method was generated by Apache iBATIS ibator. This method corresponds to the database * table playlist_songs * * @ibatorgenerated Thu Oct 22 12:34:10 CDT 2009 */ public PlaylistSongs selectByPrimaryKey(Integer playlistsongid) throws SQLException { PlaylistSongs key = new PlaylistSongs(); key.setPlaylistsongid(playlistsongid); PlaylistSongs record = (PlaylistSongs) sqlMapClient.queryForObject("playlist_songs.ibatorgenerated_selectByPrimaryKey", key); return record; }
public static void main(String[] args) throws IOException, SQLException { String resource = "ibatis/sqlmap-config.xml"; Reader reader = Resources.getResourceAsReader(resource); SqlMapClient sqlmap = SqlMapClientBuilder.buildSqlMapClient(reader); HashMap<String, String> param = new HashMap<String, String>(); param.put("a", "1"); Object obj = sqlmap.queryForObject("testSelectAs", param); System.out.println(obj); }
/* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getProcedureScript(com.hangum.tadpole.dao.mysql.ProcedureFunctionDAO) */ @Override public String getProcedureScript(ProcedureFunctionDAO procedureDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); Map srcList = (HashMap) client.queryForObject("getProcedureScript", procedureDAO.getName()); String strSource = "" + srcList.get("Create Procedure"); strSource = StringUtils.substringAfterLast(strSource, "PROCEDURE"); return "CREATE PROCEDURE " + strSource; }
/** * sequenc * * @param dao * @return * @throws TadpoleSQLManagerException, SQLException */ public static TadpoleSequenceDAO getSequence(TadpoleSequenceDAO dao) throws TadpoleSQLManagerException, SQLException { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); dao = (TadpoleSequenceDAO) sqlClient.queryForObject("lastSequene", dao); dao.setNo(dao.getNo() + 1); sqlClient.update("updateSequence", dao); return dao; }
/* * * @return */ private String getNextCid() { String returnValue = null; try { WapCbDTO data = (WapCbDTO) sqlClient.queryForObject("NOTIFY.selectNextParamCid"); returnValue = data.getCid(); } catch (Exception ex) { logger.error("[WapCbManager]Error at getNextCid(" + ex.toString() + ")"); } return returnValue; }
public String getGroupNameByObserverIdPublisherId(int observerId, int publisherId) { UserRelation userRelation = new UserRelation(publisherId, observerId); try { return (String) client.queryForObject("getGroupNameByObserverIdPublisherId", userRelation); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; }
public Date getDate(SqlMapClient map) { Date temp = null; try { temp = (Date) map.queryForObject("uptodate"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return temp; }
/* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getFunctionScript(com.hangum.tadpole.dao.mysql.ProcedureFunctionDAO) */ @Override public String getFunctionScript(ProcedureFunctionDAO functionDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); StringBuilder result = new StringBuilder(""); Map srcList = (HashMap) client.queryForObject("getFunctionScript", functionDAO.getName()); String strSource = "" + srcList.get("Create Function"); strSource = StringUtils.substringAfterLast(strSource, "FUNCTION"); return "CREATE FUNCTION " + strSource; }
/* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getViewScript(java.lang.String) */ @Override public String getViewScript(String strName) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); StringBuilder result = new StringBuilder(""); Map srcList = (HashMap) client.queryForObject("getViewScript", strName); String strSource = "" + srcList.get("Create View"); strSource = StringUtils.substringAfterLast(strSource, "VIEW"); return "CREATE VIEW " + strSource; }
/* (non-Javadoc) * @see com.hangum.tadpole.rdb.core.editors.objects.table.scripts.RDBDDLScript#getTriggerScript(com.hangum.tadpole.dao.mysql.TriggerDAO) */ @Override public String getTriggerScript(TriggerDAO triggerDAO) throws Exception { SqlMapClient client = TadpoleSQLManager.getInstance(userDB); StringBuilder result = new StringBuilder(""); Map srcList = (HashMap) client.queryForObject("getTriggerScript", triggerDAO.getTrigger()); String strSource = "" + srcList.get("SQL Original Statement"); strSource = StringUtils.substringAfterLast(strSource, "TRIGGER"); return "CREATE TRIGGER " + strSource; }
/** * 전달 받은 값을 조회 * * @param data * @return */ public WapCbDTO getData(WapCbDTO data) { WapCbDTO returnData = null; if (data == null) // 잘못된값 검사 return null; try { logger.info("[WapCbManager]getData::" + data.getCid()); returnData = (WapCbDTO) sqlClient.queryForObject("NOTIFY.selectCBByCid", data); } catch (Exception ex) { logger.error("[WapCbManager]Error at getData(" + ex.toString() + ")"); } return returnData; }
public StudyDTO read(String id, int lectureno) { StudyDTO sdto = null; try { Map map = new HashMap(); map.put("id", id); map.put("lectureno", lectureno); sdto = (StudyDTO) mybatis.queryForObject("sol_study.read", map); } catch (Exception e) { System.out.println("memo 읽기 실패다: " + e); } return sdto; }
/** * create by yangwm in Feb 4, 2010 1:27:41 PM * * @param args */ public static void main(String[] args) { SystemLogQueryPara sysLogPara = new SystemLogQueryPara(); sysLogPara.setStartRowNum(1); sysLogPara.setEndRowNum(10); sysLogPara.setBeginTime("2009-12-22 13:03:25"); sysLogPara.setEndTime("2009-12-23 13:03:25"); SqlMapClient sqlMapClient = null; try { sqlMapClient = SqlMapClientUtil.getSqlMapClient(); // System.out.println(EntityUtil.toString(((SqlMapClientImpl)sqlMapClient).getSqlExecutor())); sqlMapClient.queryForObject("SystemLogNum", sysLogPara); } catch (Exception e) { e.printStackTrace(); } finally { // sqlMapClient } }
@GET @Produces(MediaType.APPLICATION_JSON) @Path("{ledger_id}") public Ledger getUser(@PathParam("ledger_id") long ledger_id) { Ledger objLedger = new Ledger(); objLedger.setLedger_id(ledger_id); try { Reader reader = Resources.getResourceAsReader("./dao/SqlMapConfig.xml"); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); objLedger = (Ledger) sqlMap.queryForObject("Ledger.getLedgerById", objLedger); } catch (Exception e) { e.printStackTrace(); } return objLedger; }
// 게시판 WRITE 액션 public String execute() throws Exception { // 파라미터와 리절트 객체 생성. paramClass = new boardVO(); resultClass = new boardVO(); // 등록할 항목 설정. paramClass.setSubject(getSubject()); paramClass.setName(getName()); paramClass.setPassword(getPassword()); paramClass.setContent(getContent()); paramClass.setRegdate(today.getTime()); // 등록 쿼리 수행. sqlMapper.insert("insertBoard", paramClass); // 첨부파일을 선택했다면 파일을 업로드한다. if (getUpload() != null) { // 등록한 글 번호 가져오기. resultClass = (boardVO) sqlMapper.queryForObject("selectLastNo"); // 실제 서버에 저장될 파일 이름과 확장자 설정. String file_name = "file_" + resultClass.getNo(); String file_ext = getUploadFileName() .substring(getUploadFileName().lastIndexOf('.') + 1, getUploadFileName().length()); // 서버에 파일 저장. File destFile = new File(fileUploadPath + file_name + "." + file_ext); FileUtils.copyFile(getUpload(), destFile); // 파일 정보 파라미터 설정. paramClass.setNo(resultClass.getNo()); paramClass.setFile_orgname(getUploadFileName()); // 원래 파일 이름 paramClass.setFile_savname(file_name + "." + file_ext); // 서버에 저장한 파일 이름 // 파일 정보 업데이트. sqlMapper.update("updateFile", paramClass); } return SUCCESS; }
public void check(String id, int lectureno) { boolean flag = false; int cnt = 0; Map map = new HashMap(); map.put("id", id); map.put("lectureno", lectureno); map.put("memo", ""); map.put("memodate", ""); try { cnt = (Integer) mybatis.queryForObject("sol_study.check", map); if (cnt > 0) flag = true; if (flag == false) { insert(map); // 없으면 학습테이블에 insert } } catch (Exception e) { System.out.println("check 실패: " + e); } }
/** * Is executed procedure? * * @param procedureDAO * @param useDB * @return */ public boolean isExecuted(ProcedureFunctionDAO procedureDAO, UserDBDAO selectUseDB) { if (!isSupport()) { MessageDialog.openError(null, "Error", "Not Support database"); return false; } if (!procedureDAO.isValid()) { MessageDialog.openError(null, "Error", "Not valid this procedure."); return false; } if (DBDefine.getDBDefine(userDB) == DBDefine.MYSQL_DEFAULT) { double dbVersion = 0.0; try { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(userDB); DBInfoDAO dbInfo = (DBInfoDAO) sqlClient.queryForObject("findDBInfo"); // $NON-NLS-1$ dbVersion = Double.parseDouble(StringUtils.substring(dbInfo.getProductversion(), 0, 3)); if (dbVersion < 5.5) { MessageDialog.openError( null, "Error", "The current version does not support.\n\n5.5 or later is supported."); return false; } } catch (Exception e) { logger.error("find DB info", e); return false; } } try { ProcedureExecutor procedureExecutor = getExecuter(); procedureExecutor.getInParameters(); } catch (Exception e) { MessageDialog.openError(null, "Error", e.getMessage()); return false; } return true; }
@PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String updateLedger(Ledger objLedger) { try { Reader reader = Resources.getResourceAsReader("./dao/SqlMapConfig.xml"); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); Ledger temp = (Ledger) sqlMap.queryForObject("Ledger.getLedgerById", objLedger); if (temp == null) { return "Ledger can not be identified. Try logging in again.!"; } sqlMap.startTransaction(); sqlMap.update("Ledger.updateByLedgerId", objLedger); sqlMap.commitTransaction(); sqlMap.endTransaction(); } catch (Exception e) { e.printStackTrace(); return "Some problem occured while updating Ledger information. Kindly try again!"; } return "Information updated successfully"; }
@POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String insertLedger(Ledger objLedger) { try { Reader reader = Resources.getResourceAsReader("./dao/SqlMapConfig.xml"); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); Ledger temp = (Ledger) sqlMap.queryForObject("Ledger.getDuplicateLedger", objLedger); if (temp != null) { return "Sorry, Ledger name already exists.! Kindly try some other name."; } sqlMap.startTransaction(); sqlMap.insert("Ledger.insertLedger", objLedger); sqlMap.commitTransaction(); sqlMap.endTransaction(); } catch (Exception e) { e.printStackTrace(); return "Some problem occured while creating New Ledger. Kindly try again!"; } return "New Ledger created successfully"; }
/** * 사용자 정보 데이터. * * @param key * @return * @throws Exception */ public static Object getUserInfoData(String key) throws Exception { SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB()); return sqlClient.queryForObject("getUserInfoData", SessionManager.getSeq()); // $NON-NLS-1$ }
// 위생.안전 검사결과 수정폼 @RequestMapping("/improvementCaseEditFrom.do") public String improvementCaseEditFrom(HttpServletRequest request) throws SQLException { int seq = Integer.parseInt(request.getParameter("seq")); int currentPage = Integer.parseInt(request.getParameter("currentPage")); int searchingNow = Integer.parseInt(request.getParameter("searchingNow")); resultClass = (ImprovementCaseDTO) sqlMapper.queryForObject("ImprovementCase.selectImprovementCaseOne", seq); // 수정시 기존 이미지명 저장하기 위한 작업 시작 cnt = 0; // 이미지 개수를 파악 if (resultClass.getImg1() != null) { cnt++; } if (resultClass.getImg2() != null) { cnt++; } if (resultClass.getImg3() != null) { cnt++; } if (resultClass.getImg4() != null) { cnt++; } if (resultClass.getImg5() != null) { cnt++; } if (resultClass.getImg6() != null) { cnt++; } // .이미지 개수를 파악 종료 // 이미지명을 저장하기 위한 배열 String[] imgNames = new String[cnt]; // 이미지명 저장 시작 if (resultClass.getImg1() != null) { imgNames[0] = new String(resultClass.getImg1().substring(38)); } if (resultClass.getImg2() != null) { imgNames[1] = new String(resultClass.getImg2().substring(38)); } if (resultClass.getImg3() != null) { imgNames[2] = new String(resultClass.getImg3().substring(38)); } if (resultClass.getImg4() != null) { imgNames[3] = new String(resultClass.getImg4().substring(38)); } if (resultClass.getImg5() != null) { imgNames[4] = new String(resultClass.getImg5().substring(38)); } if (resultClass.getImg6() != null) { imgNames[5] = new String(resultClass.getImg6().substring(38)); } // .이미지명 저장 종료 // .수정시 기존 이미지명 저장하기 위한 작업 종료 // 테스트 System.out.println("-----------------------------"); System.out.println("Edit에서 호출 // 이미지개수 : " + cnt); for (int i = 0; i < imgNames.length; i++) System.out.println(imgNames[i]); System.out.println("-----------------------------"); // 테스트 request.setAttribute("seq", seq); request.setAttribute("currentPage", currentPage); request.setAttribute("searchingNow", searchingNow); request.setAttribute("resultClass", resultClass); request.setAttribute("cnt", cnt); request.setAttribute("imgNames", imgNames); return "/view/menu3/improvementCaseEdit.jsp"; }
// 의사 일정보기 @RequestMapping("/scheduleList.do") public ModelAndView scheduleList(HttpServletRequest request, HttpSession session) throws Exception { List<doctorListDTO> mylist_list2 = new ArrayList<doctorListDTO>(); List<ReserveDTO> reserve_list_doctor = null; ModelAndView mv = new ModelAndView(); String id = (String) session.getAttribute("id"); reserve_list_doctor = sqlMapper.queryForList("reserve_list_doctor", id); for (ReserveDTO r : reserve_list_doctor) { doctorListDTO mylist2 = new doctorListDTO(); r.setReg_date_string(returnDateString(r.getReg_date())); r.setReserve_date_string(returnDateString(r.getReserve_date())); /* * 1)예약정보 ID로 회원조회 * * * */ // DoctorDTO doc=new DoctorDTO(); // doc=(DoctorDTO)sqlMapper.queryForObject("findDoctorAndPart",r.getDoctornum()); MemberDTO mem = new MemberDTO(); mem = (MemberDTO) sqlMapper.queryForObject("findMember", r.getId()); // 의사의 정보 mylist2.setReservenum(r.getReservenum()); mylist2.setId(r.getId()); mylist2.setReserve_date_string(r.getReserve_date_string()); mylist2.setStr_time(r.getStr_time()); mylist2.setReg_date_string(r.getReg_date_string()); mylist2.setDoctornum(r.getDoctornum()); mylist2.setName(mem.getName()); mylist2.setAge(mem.getAge()); mylist2.setJumin1(mem.getJumin1()); mylist2.setJumin2(mem.getJumin2()); mylist2.setPhone1(mem.getPhone1()); mylist2.setPhone2(mem.getPhone2()); mylist2.setPhone3(mem.getPhone3()); mylist_list2.add(mylist2); } String cp = request.getParameter("currentPage"); int currentPage; if (cp == null) { currentPage = 1; } else { currentPage = Integer.parseInt(cp); } totalCount = reserve_list_doctor.size(); // 전체 글 갯수를 구한다. page = new pagingAction(currentPage, totalCount, blockCount, blockPage); // pagingAction 객체 생성. pagingHtml = page.getPagingHtml().toString(); // 페이지 HTML 생성. // 현재 페이지에서 보여줄 마지막 글의 번호 설정. int lastCount = totalCount; // 현재 페이지의 마지막 글의 번호가 전체의 마지막 글 번호보다 작으면 lastCount를 +1 번호로 설정. if (page.getEndCount() < totalCount) lastCount = page.getEndCount() + 1; // 전체 리스트에서 현재 페이지만큼의 리스트만 가져온다. reserve_list_doctor = reserve_list_doctor.subList(page.getStartCount(), lastCount); int number = totalCount; mv.addObject("currentPage", currentPage); mv.addObject("totalCount", totalCount); mv.addObject("blockCount", blockCount); mv.addObject("blockPage", blockPage); mv.addObject("number", number); mv.addObject("pagingHtml", pagingHtml); mv.addObject("page", page); mv.addObject("mylist_list2", mylist_list2); mv.addObject("BODY_PATH", "/reserve/scheduleList.jsp"); mv.setViewName("/main/main.jsp"); return mv; // List<ReserveDTO> list= new ArrayList<ReserveDTO>(); // // String event=""; // try { // list=(List<ReserveDTO>)sqlMapper.queryForList("all_reserve"); // // for(ReserveDTO dto:list){ // // if(dto.getStr_time().equals("9")){ // dto.setStr_time("09"); // } // event+= " { title: '<"+dto.getReservenum()+">' , start: // '"+returnDateString(dto.getReserve_date())+"T"+ // dto.getStr_time()+":00:00' } ,"; // } // // event=event.substring(1, event.length()-1 ); // event="[ "+event+" ]"; //// event+="{ title: '"+list.get(0).getReservenum()+"번', start: '"+ //// "2015-05-12T14:30:00' }, { title: '"+list.get(1).getReservenum()+"번', start: '"+ //// "2015-05-12T14:30:00' }"; //// event="[ "+event+" ]"; // } catch (Exception e) { // System.out.println("메인정보없음"); // } //// event+="]"; // // ModelAndView mv= new ModelAndView(); //// mv.addObject("eventString", event); // mv.setViewName("/main/main.jsp"); // return mv; }
// 위생.안전 검사결과 수정 @RequestMapping(value = "/improvementCaseEdit.do", method = RequestMethod.POST) public String improvementCaseEdit( MultipartHttpServletRequest request, HttpServletRequest request1, HttpServletResponse response1, HttpSession session) throws Exception { // 작성한 사용자(현재 로그인한 세션아이디) String session_id = (String) session.getAttribute("session_id"); // 수정요청한 뷰 정보 int seq = Integer.parseInt(request.getParameter("seq")); int currentPage = Integer.parseInt(request.getParameter("currentPage")); int searchingNow = Integer.parseInt(request.getParameter("searchingNow")); // 사용자가 입력한 값 String description = request1.getParameter("description"); Calendar today = Calendar.getInstance(); // DTO Set() paramClass.setSeq(seq); paramClass.setDescription(description); // 수정내용 paramClass.setUdt_name(session_id); // 수정인 paramClass.setUdt_date(today.getTime()); // 수정일 // DB에 update 하기 (글 수정) sqlMapper.update("ImprovementCase.updateImprovementCase", paramClass); // .기본적인 내용 업로드 종료 // 1. 파일삭제를 위해 생성 - 파일삭제시 기존 업로드된파일의 경로를 얻기위함 // 2. 이미지 파일 수정을 위해 생성 - 사용자가 수정시 이미지 업로더를 추가했는지 감소했는지 판단하고 업데이트를 하기 위함 resultClass = (ImprovementCaseDTO) sqlMapper.queryForObject("ImprovementCase.selectImprovementCaseOne", seq); /* ##파일첨부 시작## 업로드요청이 새로 들어올경우 기존 파일을 삭제한 후에 새로 복사본을 서버에 저장함 */ MultipartFile file = request.getFile("filename"); // 업로드된 원본 String orgName = file.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName != "") { // 파일을 첨부했을 경우 // 기존파일 삭제시작 if (resultClass.getAttach_path() != null) { File deleteFile = new File(resultClass.getAttach_path() + resultClass.getAttach_name()); deleteFile.delete(); } // .기존파일 삭제종료 // 새로운파일 생성시작 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "file_inspectionResult_" + randNum; // 서버저장 파일명(file_inspctionResult_랜덤번호) String fileExt = orgName.substring(orgName.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file.transferTo(save); // 복사본 생성 // DB 파일 경로 저장용 // 상대경로 path // String path = save.getPath().replace("\\", "/").substring(42); // 42전까지가 절대경로 // 절대경로 path String path = file_path + fileName + fileExt; paramClass.setSeq(seq); // 시퀀스넘버 paramClass.setAttach_name(fileName + fileExt); // 파일명 paramClass.setAttach_path(path); // 파일경로(img src 경로를 의미함) // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateFile", paramClass); /// 새로운파일 생성종료 } // .파일첨부 종료 /* ##이미지첨부 수정 시나리오## 0. 기존값 == null 일때 -> 수정값 == null 이면, 아무것도안함 - 사용자가 어떠한 수정변화도 주지 않았음을 의미 1. 기존값 == null 일때 -> 수정값 != null 이면, 수정레코드 업데이트 - 사용자가 이미지를 추가등록했음을 의미 2. 기존값 != null 일때 -> 수정값 != null 이면, 기존레코드 삭제(이미지포함), 수정레코드 업데이트 - 사용자가 동일컬럼을 수정하였음을 의미 3. 기존값 != null 일때 -> 수정값 == null 이면 -> 현재>수정개수, 기존컬럼 삭제(이미지포함) - 사용자가 이미지를 감소등록했음을 의미 -> 0==수정개수, 아무것도안함 - 사용자가 어떠한 수정변화도 주지 않았음을 의미 if(기존개수==1) 경우 논리적으로 삭제될 수 없음. -> 1개에선 감소할 수 없게 alert 방어경고 */ // 기존img개수 산출 int orgCnt = Integer.parseInt(request.getParameter("cnt")); // 수정img개수 산출 int uptCnt = 0; if (request.getFile("optupload1") != null) { uptCnt++; } if (request.getFile("optupload2") != null) { uptCnt++; } if (request.getFile("optupload3") != null) { uptCnt++; } if (request.getFile("optupload4") != null) { uptCnt++; } if (request.getFile("optupload5") != null) { uptCnt++; } if (request.getFile("optupload6") != null) { uptCnt++; } // 수정img개수 산출 종료 // 1. 기존값 == null 일때 -> 수정값 != null 이면, 수정레코드 업데이트 - 사용자가 이미지를 추가등록했음을 의미 // 1번 이미지 if (resultClass.getImg1() == null) { // 1번 이미지 if (request.getFile("optupload1") != null) { // 해당 변수가 존재하면 MultipartFile file1 = request.getFile("optupload1"); // 업로드된 원본 String orgName1 = file1.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName1 != "") { // 이미지 파일을 첨부했을 경우 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName1.substring(orgName1.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file1.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg1(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg1", paramClass); } } } // .1번 이미지 종료 // 2번 이미지 if (resultClass.getImg2() == null) { if (request.getFile("optupload2") != null) { // 해당 변수가 존재하면 MultipartFile file2 = request.getFile("optupload2"); // 업로드된 원본 String orgName2 = file2.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName2 != "") { // 이미지 파일을 첨부했을 경우 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName2.substring(orgName2.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file2.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg2(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg2", paramClass); } } } // .2번 이미지 종료 // 3번 이미지 if (resultClass.getImg3() == null) { if (request.getFile("optupload3") != null) { // 해당 변수가 존재하면 MultipartFile file3 = request.getFile("optupload3"); // 업로드된 원본 String orgName3 = file3.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName3 != "") { // 이미지 파일을 첨부했을 경우 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName3.substring(orgName3.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file3.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg3(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg3", paramClass); } } // .3번 이미지 종료 } // 4번 이미지 if (resultClass.getImg4() == null) { if (request.getFile("optupload4") != null) { // 해당 변수가 존재하면 MultipartFile file4 = request.getFile("optupload4"); // 업로드된 원본 String orgName4 = file4.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName4 != "") { // 이미지 파일을 첨부했을 경우 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName4.substring(orgName4.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file4.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg4(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg4", paramClass); } } } // .4번 이미지 종료 // 5번 이미지 if (resultClass.getImg5() == null) { if (request.getFile("optupload5") != null) { // 해당 변수가 존재하면 MultipartFile file5 = request.getFile("optupload5"); // 업로드된 원본 String orgName5 = file5.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName5 != "") { // 이미지 파일을 첨부했을 경우 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName5.substring(orgName5.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file5.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg5(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg5", paramClass); } } } // .5번 이미지 종료 // 6번 이미지 if (resultClass.getImg6() == null) { if (request.getFile("optupload6") != null) { // 해당 변수가 존재하면 MultipartFile file6 = request.getFile("optupload6"); // 업로드된 원본 String orgName6 = file6.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName6 != "") { // 이미지 파일을 첨부했을 경우 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName6.substring(orgName6.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file6.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg6(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg6", paramClass); } } } // .6번 이미지 종료 // .1번 시나리오 종료 // 2. 기존값 != null 일때 -> 수정값 != null 이면, 기존레코드 삭제(이미지포함), 수정레코드 업데이트 - 사용자가 동일컬럼을 수정하였음을 의미 // 3. 기존값 != null 일때 -> 수정값 == null 이면 -> 현재변수>수정개수, 기존컬럼 삭제(이미지포함) - 사용자가 이미지를 감소등록했음을 의미 // -> 0 == 수정개수, 아무것도안함 - 사용자가 어떠한 수정변화도 주지 않았음을 의미 // 1번 이미지 if (resultClass.getImg1() != null) { // 1. 수정 변수가 존재하면 if (request.getFile("optupload1") != null) { // 새로운데이터 업데이트 MultipartFile file1 = request.getFile("optupload1"); // 업로드된 원본 String orgName1 = file1.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName1 != "") { // 이미지 파일을 첨부했을 경우 // 기존이미지 삭제 String imgName = resultClass.getImg1().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName1.substring(orgName1.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file1.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg1(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg1", paramClass); } } // .1종료 // 2. 수정 변수가 없으면 -> 이미지 수정을 원치않거나 or 이미지를 감소했거나 if (request.getFile("optupload1") == null) { if (1 > uptCnt && 0 != uptCnt) { // 사용자가 이미지를 감소등록했음을 의미 // 기존이미지 삭제 String imgName = resultClass.getImg1().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 // 해당 컬럼의 데이터만 제거 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg1(null); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg1", paramClass); // 해당 컬럼을 초기값인 null로 초기화 } else if (0 == uptCnt) { // 수정을 원치 않은 경우 // 아무작업안함 } } // .2종료 } // .1번 이미지 종료 // 2번 이미지 if (resultClass.getImg2() != null) { // 1. 수정 변수가 존재하면 if (request.getFile("optupload2") != null) { // 새로운데이터 업데이트 MultipartFile file2 = request.getFile("optupload2"); // 업로드된 원본 String orgName2 = file2.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName2 != "") { // 이미지 파일을 첨부했을 경우 // 기존데이터 삭제 String imgName = resultClass.getImg2().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존데이터 삭제 종료 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName2.substring(orgName2.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file2.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg2(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg2", paramClass); } } // 2. 수정 변수가 없으면 -> 이미지 수정을 원치않거나 or 이미지를 감소했거나 if (request.getFile("optupload2") == null) { if (2 > uptCnt && 0 != uptCnt) { // 사용자가 이미지를 감소등록했음을 의미 // 기존이미지 삭제 String imgName = resultClass.getImg2().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 // 해당 컬럼의 데이터만 제거 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg2(null); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg2", paramClass); // 해당 컬럼을 초기값인 null로 초기화 } else if (0 == uptCnt) { // 수정을 원치 않은 경우 // 아무작업안함 } } // .2종료 } // .2번 이미지 종료 // 3번 이미지 if (resultClass.getImg3() != null) { // 1. 수정 변수가 존재하면 if (request.getFile("optupload3") != null) { // 새로운데이터 업데이트 MultipartFile file3 = request.getFile("optupload3"); // 업로드된 원본 String orgName3 = file3.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName3 != "") { // 이미지 파일을 첨부했을 경우 // 기존데이터 삭제 String imgName = resultClass.getImg3().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존데이터 삭제 종료 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName3.substring(orgName3.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file3.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg3(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg3", paramClass); } } // 2. 수정 변수가 없으면 -> 이미지 수정을 원치않거나 or 이미지를 감소했거나 if (request.getFile("optupload3") == null) { if (3 > uptCnt && 0 != uptCnt) { // 사용자가 이미지를 감소등록했음을 의미 // 기존이미지 삭제 String imgName = resultClass.getImg3().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 // 해당 컬럼의 데이터만 제거 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg3(null); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg3", paramClass); // 해당 컬럼을 초기값인 null로 초기화 } else if (0 == uptCnt) { // 수정을 원치 않은 경우 // 아무작업안함 } } // .2종료 } // .3번 이미지 종료 // 4번 이미지 if (resultClass.getImg4() != null) { // 1. 수정 변수가 존재하면 if (request.getFile("optupload4") != null) { // 새로운데이터 업데이트 MultipartFile file4 = request.getFile("optupload4"); // 업로드된 원본 String orgName4 = file4.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName4 != "") { // 이미지 파일을 첨부했을 경우 // 기존데이터 삭제 String imgName = resultClass.getImg4().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존데이터 삭제 종료 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName4.substring(orgName4.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file4.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg4(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg4", paramClass); } } // 2. 수정 변수가 없으면 -> 이미지 수정을 원치않거나 or 이미지를 감소했거나 if (request.getFile("optupload4") == null) { if (4 > uptCnt && 0 != uptCnt) { // 사용자가 이미지를 감소등록했음을 의미 // 기존이미지 삭제 String imgName = resultClass.getImg4().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 // 해당 컬럼의 데이터만 제거 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg4(null); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg4", paramClass); // 해당 컬럼을 초기값인 null로 초기화 } else if (0 == uptCnt) { // 수정을 원치 않은 경우 // 아무작업안함 } } // .2종료 } // .4번 이미지 종료 // 5번 이미지 if (resultClass.getImg5() != null) { // 1. 수정 변수가 존재하면 if (request.getFile("optupload5") != null) { // 새로운데이터 업데이트 MultipartFile file5 = request.getFile("optupload5"); // 업로드된 원본 String orgName5 = file5.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName5 != "") { // 이미지 파일을 첨부했을 경우 // 기존데이터 삭제 String imgName = resultClass.getImg5().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존데이터 삭제 종료 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName5.substring(orgName5.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file5.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg5(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg5", paramClass); } } // 2. 수정 변수가 없으면 -> 이미지 수정을 원치않거나 or 이미지를 감소했거나 if (request.getFile("optupload5") == null) { if (5 > uptCnt && 0 != uptCnt) { // 사용자가 이미지를 감소등록했음을 의미 // 기존이미지 삭제 String imgName = resultClass.getImg5().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 // 해당 컬럼의 데이터만 제거 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg5(null); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg5", paramClass); // 해당 컬럼을 초기값인 null로 초기화 } else if (0 == uptCnt) { // 수정을 원치 않은 경우 // 아무작업안함 } } // .2종료 } // .5번 이미지 종료 // 6번 이미지 if (resultClass.getImg6() != null) { // 1. 수정 변수가 존재하면 if (request.getFile("optupload6") != null) { // 새로운데이터 업데이트 MultipartFile file6 = request.getFile("optupload6"); // 업로드된 원본 String orgName6 = file6.getOriginalFilename(); // 사용자가 업로드한 실제 파일 이름 if (orgName6 != "") { // 이미지 파일을 첨부했을 경우 // 기존데이터 삭제 String imgName = resultClass.getImg6().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존데이터 삭제 종료 String randNum = Integer.toString((int) (Math.random() * 99999)); // 랜덤번호 String fileName = "img_improvementCase_" + randNum; // 서버저장 파일명(img_improvementCase_랜덤번호) String fileExt = orgName6.substring(orgName6.lastIndexOf('.')); // 서버저장 확장자 File save = new File(file_path + fileName + fileExt); // 복사대상 생성 (경로+파일명+확장자) file6.transferTo(save); // 복사본 생성 // 이미지파일 상대경로 제작 String temp = image_path.replace("\\", "/"); // 상대경로 path String path = temp + fileName + fileExt; // 상대경로+파일명+확장자 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg6(path); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg6", paramClass); } } // 2. 수정 변수가 없으면 -> 이미지 수정을 원치않거나 or 이미지를 감소했거나 if (request.getFile("optupload6") == null) { if (6 > uptCnt && 0 != uptCnt) { // 사용자가 이미지를 감소등록했음을 의미 // 기존이미지 삭제 String imgName = resultClass.getImg6().substring(38); // 38 이전은 상대경로 File deleteFile = new File(imgPath + imgName); // 파일명 + 경로 deleteFile.delete(); // 기존이미지 삭제 종료 // 해당 컬럼의 데이터만 제거 paramClass.setSeq(seq); // 최대 시퀀스넘버 paramClass.setImg6(null); // 이미지경로 // 파일 정보 업데이트. sqlMapper.update("ImprovementCase.updateImg6", paramClass); // 해당 컬럼을 초기값인 null로 초기화 } else if (0 == uptCnt) { // 수정을 원치 않은 경우 // 아무작업안함 } } // .2종료 } // .6번 이미지 종료 // .2~3번 시나리오 종료 // .이미지첨부 수정 시나리오 종료 return "redirect:/improvementCaseView.do?seq=" + seq + "¤tPage=" + currentPage + "&searchingNow=" + searchingNow; // 호출한 뷰페이지로 리다이렉트 }