웹프로그래밍
-
회원탈퇴, Builder pattern,Reflection-22.06.29웹프로그래밍 2022. 6. 29. 13:41
mapper proxy : 진짜 처럼 행동하는 인터페이스가 없으면 프록시 생성 불가 인터페이스반드시 존재!!! 인터페이스에 해놓은것 쿼리문 맵핑타입하고 연결됨 결과 데이터를만들어내기위한 설정 조인 안했을 때는 릴레이션구조 필요없었음 사용되는 테이블 총 5개중에서 중요한 테이블 3개고름 prodVO 그동안 구매한 상품담을 수 있는 VO, 프로드와 바이어의 관계를 1:1 has a로 buyerVO 거래처 정보 담기위한 구조 필요했음 -> buyer도 직접 바인딩 할 수 없어 memberVO buyList :구매기록 , 한건한건 구매기록이 엘리먼트로 들어가있음 prodVO타입으로 해준것임 ->private Set buyList; // has many관계 기본형이 아님 컬럼값 하나를 담기위한 프로퍼티가 아니기에..
-
myBatis(2),Lombok-22.06.28웹프로그래밍 2022. 6. 28. 23:41
insert , update, delete myBatis적용해보자 클라이언트가 PK입력 안할때 사용 selectKey --차후 상품관리할떄 필요 아이디 직접 받으니까 우리가 만들어줄 필요없어 SqlSession 이 내부에서 sqlException을 런타임 익셉션으로 바꾸고 있따 SELECT ',' ||'#{'||SNAKETOCAMEL(COLUMN_NAME) ||'}' FROM COLS WHERE TABLE_NAME ='MEMBER'; ,는 항상 앞에 있는것이 수정하기 쉽다. => 컬럼에 대한 상수 정의해놓음 jdbcType=VARCHAR null데이터 데이터베이스에 어떻게 집어넣줄거냐 INSERT INTO MEMBER ( MEM_ID ,MEM_PASS ,MEM_NAME ,MEM_REGNO1 ,MEM_RE..
-
MyBatis, DBCP(DataBase Connection Pool)-0627(2)웹프로그래밍 2022. 6. 28. 18:57
오전에는 view단을 건들였으니 오후에는 back단을 건들여보자 P.L : MemberDAO B.L.L: MemberService C.L : MemberInsertServlet 어플리케이션의 Performance체크 ->connection pool 사용하자 mybatis 사용해보자 웹어플리케이션에는 memory관리중요 VM ) 1. 가비지컬렉터 2. 가비지컬렉터 안되는부분 (int, long,String 기본형데이터 값이 직접 들어가는것들) String계속 쓰면 점유만 되고 삭제는 안됨 String buffer : 똑같은 문자열 관리하지만 할당되는 힙 영역인 그 영역 회수 가능(가비지 컬렉터가능) 공간적 요소(memory 소요량) String str ="ad"; str += "dc"; ab dc abdc..
-
view에대한 공부, modal -0627웹프로그래밍 2022. 6. 28. 18:54
data mapper 즉 sql mapper로 해결해보겠다 ibaties가 그예이다. pulling system(?)왜 써야하는지 롬북을 사용하면서 realation 적용해보자 눌렀을때 회원정보 뜨도록 해보자 ${member['memName'] } 의존성 높은애부터 만들어야함 (VO -> 지금은 만들어져있으니까..) /** * 회원 상세 조회 * @param memId 조회할 회원의 아이디 * @return 존재하지 않는경우 null값을 반환 */ public MemberVO selectMember(String memId); @Override public MemberVO selectMember(String memId) { StringBuffer sql = new StringBuffer(); sql.app..
-
번외 ) grid적용하는 예제 이해하기웹프로그래밍 2022. 6. 27. 19:23
1. 먼저 객체가 생성이된다. 생성자 생성자는 오버로딩 가능하다 그대신 매개변수와 타입이 다르게 끔 그래서 여기에는 생성자가 2개인샘!! 1) this(new ~) this는 생성자에서다른 생성자를 호출할때 사용한다. 이 안에 new GridTemplateViewResolver()값을 가지고 어디로갈지 판단 ---만약에 this("aaa") 가 있고 public DelegatingViewResolver(String s) { } 이런 생성자가 있다면 얘가 호출되겟찌 무조건 this()가 밑에있는 다른 생성자로 가는것은 아님을 알아두자!! 그래서 여기는 그리드를 new해줬으니까 그리드 객체가 들어가있음 2) private ViewResolver[] resolvers; 이렇게 선언한 이유는 가변형 파라미터는 ..
-
tiles를 적용한 후 에러잡기웹프로그래밍 2022. 6. 25. 23:09
indexServlet도 고치기 package kr.or.ddit; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import kr.or.ddit.mvc.DelegatingViewResolver; @WebServlet("/index.do") public class IndexServlet extends HttpServlet{..
-
EL, JSTL 프레임워크 -0624웹프로그래밍 2022. 6. 24. 19:29
EL ,JSTㅣ, TILES :프레임워크 타일즈 프레임워크 : 리스너, 필터 개념 알아야함 가입할 수 있는 양식제공 , 뷰 리절브 양도 하고 있어 순서 알아두기 축약형 만들어 모두가 컨텍스트 필요해 그럼 application미리 넣어놨다면 쉽게 꺼낼 수 있고 절대경로 만드는데 더 쉬워짐 => 값을 출력할 수 있지만 제어할 수 없어 JSP 스펙에서 서버사이드 이벤트 처리 방법 1. target 선별 : context(web application) 2.이벤트 종류: request, session, servletContext lifecycle : 생성, 소멸 scope : add, remove, replace 3. 이벤트 헨들러 : Listener 의 구현체 4.이벤트 헨들러를 target 대해 listeni..
-
회원등록, DB -22.06.23웹프로그래밍 2022. 6. 23. 18:31
오늘수업 목표 타일즈 프레임워크 ? 마이바티스 프레임워크 -> 롬북 프레임워크 필터를 얹어보겠다. 리스너 구조를 얹어보자 컨트롤 쉬프트 엘 -> 외우기 MEMBER 끌어다가 놓고 insert누르면 됨 컨트롤 +f 해서 찾기 한다음에 : 영문자와숫자를 포함한 한글자 영문자와숫자를 포함한 한글자로 만들어서 ? 로 대체 한번더 수정!!!! SELECT 'stmt.set' || DECODE(DATA_TYPE, 'NUMBER', 'Int', 'String')|| '(idx++'||','|| LOWER(TABLE_NAME)||'.get'||REPLACE(INITCAP(COLUMN_NAME),'_','')|| '());' FROM COLS WHERE TABLE_NAME ='MEMBER' ORDER BY COLUMN_..