본문 바로가기

전체 글388

DB에러 -> 요청한 작업을 수행하는 중 오류 발생:Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (CONNECTION_ID=fTPfFwoVRxeyl5DKjGtSRw==)업체 .. 요청한 작업을 수행하는 중 오류 발생: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (CONNECTION_ID=fTPfFwoVRxeyl5DKjGtSRw==) 업체 코드 12505 해결 했던 방법 1. 우선 윈도우키+R 을 눌러 실행창을 열어 준다. 2. services.msc 를 쳐서 서비스에 들어간다. 3. 컴퓨터를 실행시킬 때 데이터베이스를 키면 한번씩 충돌이 발생해서 뜨는 경우가 종종 있다. 그래서 OracleServiceXE를 중지시켰다가 다시 실행시키고, 재부팅하니 해결되었다. 2023. 4. 29.
[Spring] 쇼핑몰 - 59 페이징처리 페이징 처리를 해보자 모든 오라클 db에서 사용가능한 정렬 -1 ROWNUM을 넣은 후 정렬이 되기 때문에, 조회된 행 번호를 보면 뒤죽박죽으로 정렬되어있다. 따라서 오른쪽과 같이 SELECT절에 한번 감싸주어 ROWNUM을 정렬하게 되면 이렇게 ROWNUM이 제대로 정렬되어 뜨는 것을 확인할 수 있다. ROWNUM 은 조회된 데이터에 행번호를 붙이기 때문에, ROWNUM > 11 에서 데이터를 전혀 불러올 수 없다. ROWNUM이 1보다 큰 데이터들을 조건으로 주면 데이터가 나올 수 없다. HTML 삽입 미리보기할 수 없는 소스 이렇게 SELECT문으로 한번 더 감싸주었다. 그리고 ROWNUM에 별칭 ROW_NUM을주어, SELECT절에서 ROWNUM말고, ROW_NUM을 정렬하고 WHERE 조건을 주.. 2023. 4. 28.
[Spring] 쇼핑몰 - 58 주문 목록 정렬하기 날짜순으로 정렬되면 날짜순에만 파란색으로, 상태순으로 정렬되면 상태순으로 정렬되고 파란색으로 변경해보자. admin_mapper.xml 날짜순으로 정렬하기 위해서는 UPDATE_DATE를 BUY_DATE로 변경해야한다. STATUS_INFO에 있는 1,2,3,4,5는 각 주문접수, 주문확인, 배송준비, 배송중, 배송완료 데이터를 갖고있으므로 상태순으로 정렬하려면 BUY_DATE를 STATUS_CODE로 들어오면 된다. 따라서 ${ } 을 채워주면 된다. 단, 서브메뉴에서 들어오거나, 페이지를 처음들어오면 데이터를 못 받으므로, VO에서 변수를 추가하고, 컨트롤러에서도 넣어줘야 한다. OrderListSearchVO AdminController 컨트롤러 이렇게까지 하면, ${orderBy} 에는 초기에 주.. 2023. 4. 28.
[Spring] 쇼핑몰 - 57 주문 관리 검색 기능 만들기 order_manage.html html에서 일단 그림을 그려주었다. align-middle -> 버튼 생성 시 글자들이 위로 올라가는데, 다시 가운데 정렬해준다. admin_mapper.xml 각 input에 맞는 데이터들을 집어넣어 조건에 맞는 데이터들만 조회하기 위해 쿼리를 수정해주었다. 검색 기능을 구현하기위해 데이터를 이렇게 조회해보았는데, BUY_CODE와 BUY_DATE, STATUS_CODE에 임의의 값을 넣어 조회되는지 확인해보고, 오른쪽과 같이 java에 있는 데이터로 바꿔넣었다. OrderListSearchVO 컬럼이 변수로 들어오면 # 말고 $쓴다. 왜냐하면 #은 데이터 준 뒤 ' ' 를 줌으로써 문자로 인식한다. AdminController 컨트롤러 DB쿼리를 mapper에 이렇게.. 2023. 4. 27.
[Spring] 쇼핑몰 - 56 주문 확인 내역 Map 데이터 받아와 조회 ConstVariable AdminController 컨트롤러 컨트롤러 맨 아래에 기능을 위한 Map 메소드를 하나 생성해주었다. statusInfoList에 code와 name 각각 5개의 정보를 모두 불러와야한다. order_manage.html [[orderStatus.key]] 얘는 자료형이 int이다.orderStatusVO 안에 있는 데이터의 key 값이 Inteager이기 때문이다. orderStatusMap.put(statusInfo.getStatusCode() , adminService.getOrderStatusBy(statusInfo.getStatusCode()));에서 getStatusCode() 얘는 put으로 인해 key값으로 들어가는데 VO를 살펴보면 int 이기 때문이다. or.. 2023. 4. 27.
[Spring] 쇼핑몰 - 55 스크롤 order_manage.html, js overflow - > 넘쳐흐르면 어떻게 할지 정해준다. hidden 해줄 시 정해진 영역만큼 나오고 넘치면 짜른다. overflow-y는 y축만 스크롤을 주는기능이다. overflow만 쓰면 x, y축 모두 생성된다. 이때 scroll을 쓰면, 넘쳐흘렀을때 스크롤을 만들어준다. table에서는 안먹어서 div에 my-scroll을 주었다. *** 스크롤을 쓰기 위해선 기본적으로 영역 크기가 정해져있어야 한다. order_manage.css, html overfolw에서 auto로 주게되면 범위가 벗어 난것은 생기고, 범위 내에 있는 것들은 스크롤이 생기지 않는다. css와 html에서 margin, padding을 주면서 깔끔하게 나타내 주었다. 하지만 데이터가 .. 2023. 4. 27.
[Spring] 쇼핑몰 - 54 관리자 계정 주문 관리 조회 - 2 이 사진처럼 뽑아보려고한다. admin-mapper.xml AdminService AdminController 컨트롤러 이 데이터를 Map에 담아서 html로 보낼 것이다. AdminController 컨트롤러 여기서 뽑아주는 Map데이터는 순서가 정렬되어있지 않다는 것을 인지하자. html에서 뽑아보면 이렇게 데이터 베이스에 저장된 1, 2, 3, 4,5 순서가아닌 무작위로 나온다. order_manage.html html에서 이런식으로 데이터를 뽑아줄 수있다. 그래도 이렇게 주문접수에 있는 Map데이터들만 출력되는 것을 확인할 수 있다. order_manage.html 이렇게 데이터들은 깔끔하게 뽑았고, 없는 데이터들은 데이터가 없다는 문구도 출력해주었다. 이제 데이터 순서를 맞추자. AdminCon.. 2023. 4. 26.
[Spring] 쇼핑몰 - 53 관리자 계정 주문 관리 조회 주문 관리에 데이터를 뽑아보자. 주문관리 페이지를 꾸미기 위해 일단 데이터를 담은 테이블을 만들어보자. STATUS_INFO , ORDER_STATUS STATUS_INFO 테이블과 ORDER_STATUS 테이블 두개를 생성해주었다. ORDER_STATUS STATR WITH 1 -> 1부터 시작 INCREMENT BY 1 -> 시퀸스가 1씩 증가 MINVALUE 1 -> 최소값 1 MAXVALUE 1 -> 최대값 100 NEXTVAL -> 실행 시마다 1씩 증가된다. CURRVAL -> 현재 값 조회 1. 구매시 주문 상태정보 테이블에 데이터 INSERT 2. 주문관리 페이지 -> 주문 목록 조회(전체) 컬럼 : NO, 구매코드, 구매자ID, 구매자연락처, 결제금액, 주문상태(문자), 구매날짜 join.. 2023. 4. 25.
[Spring] 쇼핑몰 - 52 Security 사용해 로그인하기 -2 로그인을 여러번 실패하면 header.js init()에 있는 로그인 실패시 추가되는 태그에서 로그인 함수에 있는 붙여넣어 주었다. init()함수는 가장 먼저 실행되는 함수이다. 그럼 몇번을 실패해도 로그인 정보를 확인하세요는 한번만 출력된다. 로그인에 성공하여 관리자 페이지로 왔다. 하지만 오른쪽 상단에 로그인 한지 안한지 표식이 뜨지 않는다. MemberController 컨트롤러 이제 컨트롤러에서 session을 받아 데이터를 삭제하는 것은 필요없으니 지워준다. SecurityConfig SecurityConfig에서 로그아웃시 session을 지워주며, Url과 로그아웃 성공시 인덱스 컨트롤러에 있는 "/"로 가게 해두었다. header.html 원래 있던 session 로그인 부분을 빨간색 밑.. 2023. 4. 25.
[Spring] 쇼핑몰 - 51 Security 사용해 로그인하기 Security 를 쓰려면 Security를 쓰겠습니다~ 하고 추가를 해줘야한다. 따라서 아래 세 줄 코드들을 build.gradle에서 추가해주었다. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6' testImplementation 'org.springframework.security:spring-security-test' 위 세 코드를 추가하고, 프로젝트를 gradle - > refresh 하면 localhost8081 만들어와도 이렇게 로그인 창이 뜨게 된다. security 패키지와 Failur.. 2023. 4. 24.
ADsP 데이터분석 준 전문가 합격 후기 ADsP는 정보가 많이 없었어요. 기출문제 뺑뺑이 하기도 어려운게, 문제 답 해설 깔끔하게 있는 pdf 들을 구하기가 어려웠습니다. 하지만 유튜브에서 많은 비전공자분들이 독학으로 쉽게 합격했다는 영상들을 접하고 저도 한번 해봐야겠다 마음을 먹었쥬 아무래도 전공자다보니 데이터 다루는 수업은 들었던 경험이 있어서 나정도면 그래도 좀 더 쉽게 느껴지겠지? 했지만, 큰 착오였습니다. 제가 공부했던 데이터와 완전 다른 개념으로 접근하게 되더라구요.. 거의 모든 내용들을 새로 접했다고 해도 무방할정도로 지식이 없었습니다. (물론 컴공인데 저만 해당하는 이야길 수도 있어요. 저는 전과생이거든요 ㅠㅠ) 그렇게 몇일을 눈으로 봐도봐도 이게 뭐야 하다가,, 인강의 힘을 빌리기로 했습니다. https://www.youtub.. 2023. 4. 21.
[Spring] 보드게시판 만들기(11) Security 사용해 로그인하기 build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6' testImplementation 'org.springframework.security:spring-security-test' SecurityConfig public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring().requestMatchers("/js/**", "/css/**", "/img/**"); } static 폴더 전체의 내용. ig.. 2023. 4. 21.