Spring(21)
-
[Mybatis]_MyBatis의 동적 태그 정리
개요 Mybatis 나 IBatis 를 사용하여 쿼리문을 작성할 때 특정 조건, 혹은 파라미터의 존재 유무에 따라 ex)_ 페이징 처리 비슷한 쿼리를 여러개 작성해야 합니다. 이렇게 비슷한 쿼리를 여러개 생성하는 것 보다. MyBatis 에서 제공하는 동적쿼리를 사용하면 한 쿼리 안에 여러가지의 경우의 수를 가진 쿼리를 작성 할 수 있습니다. - MyBatis의 동적 태그에는 if, choose, where, trim, foreach가 있습니다. 1. IF 문 : 단일 조건문 기본 문법 ] //실행할 쿼리 예시] AND user_Name = #{userName} 전달 파라미터 : userName 비교문 : userName 이 null이 아니거나 "" (공백) 이 아닐경우 쿼리 실행 쿼리 내용 : 이전에 ..
2022.10.19 -
[MyBatis]_동적 쿼리_foreach문_feat(List<Map>데이터)
사용환경] DB : oracle FrameWork : Spring, mybatis 목표] 클라이언트에서 한가지 key 와 value 로 이루어진 json 데이터 뿐 만 아니라 파라미터에 List 데이터가 담긴 경우 여러 API 를 발송하는 것이 아니라 한번에 수정하도록 구현 사용함수&방법] 화면] 문법] MyBatis foreach collection : 파라미터로 전달받은 인자, list 혹은 Array 형태만 가능 item : 전달받은 인자를 대신할 값 open : 구문이 시작될때 삽입할 문자열 close : 구문이 종료될때 삽입할 문자열 separator : 반복 되는 사이에 출력할 문자열 index : 반복되는 구문 번호이다. 0부터 순서대로 증가 +@ iBatis property : 파라미터 p..
2022.10.19 -
[Dispatcher-Servlet]_디스패처 서블릿 이란
개념 Dispatcher-Servlet 이란 Spring 에서 HTTP 프로토콜이 들어오는 요청들을 가장 먼저 받아 해당하는 컨트롤러에 위임해주는 프론트 컨트롤러 라고 할 수 있습니다. 일반적인 Spring 구조의 서버라면, WAS 로는 Tomcat 을 사용하고 그 위에 Spring 을 올리는 방식을 사용합니다. Tomcat 에서 Spring 으로 request 가 오게 되면 가장 먼저 받는 것이 Dispatcher-Servlet 입니다. Dispatcher-Servlet 의 장점 예전에는 web.xml 파일에 모든 서블릿을 Url 매핑을 해줬다고 합니다. Dispatcher-Servlet 이 등장하고나서 모든 요청을 매핑해주면서 개발자는 컨트롤러만 구현하고 Bean 등록만 하게되면 알아서 위임해주는 편..
2022.06.17 -
[Exception]_Spring 예외처리
Exception 이란? Error 와 Exception 의 차이는 개발자의 의도인지 아닌지 라고 생각합니다. Error 같은 경우에는 시스템의 심각한 오류, 서버 다운 등 말 그대로 에러인 경우이고, 시스템 레벨에서 일어납니다. 개발자가 의도하거나, 예상 할 수 없습니다. Exception 의 경우에는 개발자가 작성한 코드 안에서 일어나는 것들을 말합니다. 개발자가 미리 알고, 예상 할 수 있는 범위를 뜻합니다. Error 의 경우 개발자가 예측하여 해결할수 없습니다. 따라서 개발자는 자기가 작성한 코드 내에서 일어날 수 있는 예외를 생각해야 하고, 코드를 작성할 때 예외가 충분히 일어날 수 있는 곳에는 예외처리를 해줘야 합니다. Exception 의 종류 예외에는 크게 2가지 종류가 있습니다. Che..
2022.06.16 -
[Spring]_Controller 파라미터 정리
스프링 컨트롤러를 작성하면서 사용한 파라미터 정리입니다. 1. @HttpServletRequest / @HttpServletResponse / @ServletRequest / @ServletResponse @RequestMapping("/test") String test1(HttpServletRequest request) { String a = request.getParameter("a"); System.out.println("a : " + a); return "data"; } HTTP 에서 URL 요청시 전송한 값, 쿠키 ,세션, 헤더 등 클라이언트 정보를 가져올때 사용 웹브라우저 사용자인 클라이언트 -> 서버로 요청- > 서버에서 HttpServletRequest 를 생성, 서블릿에게 전달 받아올때 ..
2022.06.03 -
[포트폴리오 페이지]_16단계_CRUD 게시판 구현_(Update 기능)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : SPA 로 구현한 게시판에서 row Read 후 한단계 더 Depth 으로 수정하기 페이지구현, 뒤로가기 버튼 클릭시 이전 정보 보이게 구현 & 작성자가 아닐 경우 삭제, 수정 버튼 안보이게 구현 1] 상세화면 jsp 소스코드 제목 : ${title} 작성자 : ${writer} 내용 : ${content} 작성일자 : ${regdate} 뒤로가기 수정하기 게시글 삭제 우선 해당 if 문을 통해 LocalStorage에 저장된 로그인 정보를 비교하여, 게시글의 작성자와 동일할 경우에만 표시 if( writercheck =..
2022.04.26 -
[포트폴리오 페이지]_15단계_CRUD 게시판 구현_(목록 Read 기능)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS [완성화면] 목록에서 번호를 클릭시 해당 게시글의 내용이 나오도록 한다. 개발 목표 : 기존에 만든 게시판에서 SPA 을 유지하며, 게시판 Row 클릭시 해당 목록 조회. 메뉴 1 소스코드] CRUD 등록 10개씩 보기 15개씩 보기 20개씩 보기 제목 작성자 조회 번호 제목 글쓴이 작성일자 조회수 이전 포스팅에 비해 좀더 새분화 하여 나누었으며 기능은 테이블 생성, 목록 조회, 조회버튼 클릭, view 카운트 변경 의 4가지 기능으로 나누어 작성하였습니다. 코드설명] 1] 테이블 생성 부분 //테이블 생성 async function createB..
2022.04.26 -
[포트폴리오 페이지]_14단계_CRUD 게시판 구현_(검색 기능)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : 기본 게시판 그릴 때 로직 변경 -> 작성자 or 제목 항목 포함해서 query 발송, ROWNUM 활용하여, bno(table 의 key) 를 숨기고 가상의 number 목록 표시 아래의 포스팅에서 로직 변경함 https://yn971106.tistory.com/77 [포트폴리오 페이지]_9단계_CRUD 게시판 구현_(feat.목록 조회기능 구현) [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 R(r..
2022.04.26 -
[포트폴리오 페이지]_13단계_CRUD 게시판 구현_(신규 데이터 Create)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis 사용 언어 : ES6, Java , Html5 , CSS 완성 화면] 개발 목표 : 기존에 만든 게시판에서 SPA 구현을 위해 등록기능 menu1 로 병합 https://yn971106.tistory.com/78 [포트폴리오 페이지]_10단계_CRUD 게시판 구현_(feat.등록기능 구현) [환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 C(create) 만들기 [완료화면] 등록 버튼 클릭시 메뉴 1의 게시판에 새로운 항목.. yn971106.tistory.com 해당 포스트에서 검색기..
2022.04.26 -
[포트폴리오 페이지]_10단계_CRUD 게시판 구현_(feat.등록기능 구현)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 C(create) 만들기 [완료화면] 등록 버튼 클릭시 메뉴 1의 게시판에 새로운 항목이 생성 한국어는 깨지는 현상이 발생-> 추후 해결예정 [디렉토리] CRUD는 같은 파일에 작성 [JSP 파일] 등록 fetch 를 사용하여 해당 url을 호출하고, 데이터는 json으로 가공하여 전달, 데이터들은 입력 폼 안에 적힌 text, globalstorage에 저장된 사용자 명을 받아서 전달한다. [Controller] @RequestMapping("/board/register.do") @ResponseBody public String boar..
2022.04.03 -
[포트폴리오 페이지]_9단계_CRUD 게시판 구현_(feat.목록 조회기능 구현)
[환경] 개발툴 : IntelliJ DB : oracle 프레임워크 : spring , mybatis ---- 개발 목표 : 오라클 디비를 이용해서 게시판 CRUD 중 R(read) 만들기 [완료 화면] [디렉토리] [설명] board에 관한 controller 와 VO 객체 (DTO 로 해도 무방함) Serivce, mapper 부분 파일 생성. 1. jsp 파일 CRUD 등록 번호 제목 글쓴이 작성일자 조회수 fetch 를 사용하여 controller 호출하며, 응답받은 데이터는 list 구조로 이루어져 있으며 그 ArrayList 구조를 forEach를 사용하여 각각의 index 순회를 하며 html 태그를 만들고 해당하는 데이터를 td 안에 넣고 이를 append 를 이용해서 tablebody에 ..
2022.04.03 -
[포트폴리오 페이지]_5단계_db에 데이터 집어넣기
이전까지 db 연결 및 생태계를 이해하였으니 직접 데이터를 view 단에서 넣어보도록 하겠습니다. Mybatis 의 fullconnection 기능을 사용하니 DAO는 사용하지 않고 주고받을 객체는 VO로 만들겠습니다. view 단에서 데이터를 전달할 함수는 Fetch 함수를 사용하겠습니다. 디렉토리 ] 1] VO 선언입니다. package com.yoon.model; public class MemberVO { private String memberId; @Override public String toString() { return "MemberVO{" + "memberId='" + memberId + '\'' + ", memberPw='" + memberPw + '\'' + '}'; } private ..
2022.03.10