본문 바로가기
반응형

Study224

<selectKey>의 활용법 Mybatis의 selectKey는 데이터 베이스의 한번의 명령으로 selectkey의 결과값을 다음 쿼리에 활용하는 기능이다. 아묻따 사용법부터 보자.  SELECT USER_NO_SEQ.CURRVAL FROM DUAL INSERT INTO USERS (USER_NO, CODE, NAME, PWD) VALUES (#{newUserNo}, #{code}, #{name}, #{pwd})  insert id가 insertUser로 되어있는 insert를 한번 수행하면서, selectKey에서 user_no의 시퀀스 값을 가져와 keyProperty를 이용하여 newUserNo라는 속성에 대입한다.  그리고 밑에서 #{newUserNo} 라는 이름으로 호출해 가져온 시퀀스의 값.. 2024. 10. 3.
SQL JOIN의 이해 오래된 그림이나 이만큼 JOIN에 대해 잘 표현한 사진이 없는것같다. 실무를 하다보면 아주 덕지덕지 JOIN에 LEFT에 RIGHT에 UNION ALL 천국인 경우가 많다. JOIN의 이해가 부족하면 쿼리를 보고 어디서 어떻게 데이터를 가져오는지 이해하기가 어려워진다.  또한 내가 쿼리를 짜는 상황이 왔을때 어떻게 어느 테이블과 어떤식으로 JOIN을 해 원하는 결과값을 가지고 와야할지에 대해 설계 하고 구현하는데 많은 어려움이 생긴다. JOIN은 꼭 이해하고 넘어가자. 2024. 10. 2.
java.lang.UnsupportedOperationException: null 어느날과 다름없이 개발을 진행하고 있는데 개발서버에서 오류가 난다는 말을 듣고 가서 보니 java.lang.UnsupportedOperationException: null 이런 오류가 발생하고 있었다. 처음에는 무심코 NULL만 보고 ' 아 쿼리에 NULL이들어갈수 없는데 들어갔구나 ' 라는 생각으로 Parameter에서부터 Mapper까지 전체적인 흐름과 로직, 쿼리를 살펴보고있었다. 근데 아무리봐도 이상이 없는 로직인데 계속해서 해당 오류를 내뿜고 있었고 데이터도 등록이 되지 않는 상황... 한참을 시간소요하다가 다른곳이 문제인거같아서 Service 단에서 한줄한줄 Log를 찍어보기 시작... 문제는 쿼리나 파라미터가 아닌 다른곳에서 발생하고 있었다.  Map searchMap = mapDTO.get.. 2024. 9. 27.
SQL Error [972] [42000]: ORA-00972: 식별자의 길이가 너무 깁니다 SI 개발, 혹은 SM을 하다보면 남이 짠 쿼리를 들여다보고 오류 수정 및 리팩토링을 해야할때가 있다. 물론 내가 짠 코드도 동료검토를 받아서 최종적으로 클린코드로 작성해야한다. 오늘 쿼리를 조회하고 각 화면단 기능 점검을 하는데 ORA-00972: 식별자의 길이가 너무 깁니다 라는 에러를 만났다 이 에러는 일반적으로 테이블, 열 이름, 인덱스 이름, 또는 기타 객체(AS 별칭, CTE명)이 각 DBMS에서 허용하는 글자수를 초과했을때 발생하는 에러이다.  현재 다루는 DBMS는 Oracle이며 Oracle에서는 버전별로 이 최대 길이가 상이하다. Oracle 12.1 및 이전 버전: 객체 이름의 최대 길이는 30 바이트 이며 12.2 및 이후 버전: 객체 이름의 최대 길이는 128 바이트 이다. 지금 .. 2024. 9. 24.
반응형