기타 개념 9

<foreach collection=“”>

마이바티스에서 문을 사용할 때  이런식으로 사용하는데 foreach는 다중 값을 받아 사용할 때 사용 하는 것으로 다중 값들이 ,로 되어있다면 separator의 ',' 를 기준으로 값을 잘라 item에 자른 값을 넣어 비교를 한다.만약, 값은 운행차량,말소차량,공백으로 받았고 쿼리를AND RMRK IN          #{srr}     OR RMRK NOT IN ('운행차량', '말소차량', '조회된 결과가 없습니다.')   OR RMRK IS NULL 이렇게 사용한다면 결과는AND RMRK IN                (                   '운행차량'                  ,'말소차량'               )OR RMRK IS NULL                 ..

<if test = ‘’>

● .contains("")멀티 조회할때 를 사용하는 경우가 있는데 화면에서 조회를 하여 받은 파라미터 값에 해당 글자가 포함 되어 있으면 실행되는 것으로만약 srch_rfnd_rmrk에 받은 데이터 값이 '운행차량,말소차량,공백' 이라면srch_rfnd_rmrk.contains("운행차량"), srch_rfnd_rmrk.contains("말소차량"), srch_rfnd_rmrk.contains("공백")이렇게 해도 위의 데이터가 조회된다.또한, srch_rfnd_rmrk.contains("운행차량,말소차량") 이렇게 해도 된다.대신 값을 1개가 아닌 여러개를 선택해서 '운행차량,말소차량,공백 이렇게 받았을 경우.srch_rfnd_rmrk == "운행차량" and srch_rfnd_rmrk == "말소차..

Choose, when, otherwise

동적 쿼리 중 중첩 if문을 대신 할 수 있는 것이다.1. , ,  이해 태그와 같이 조건식이 참일 경우 쿼리문을 실행해주는 역할을 합니다. 다른점은 여러개의 태그 사용경우 조건식이 true를 반환하는 태그는 모두 쿼리문이 실행됩니다. 하지만 태그내의 여러개의 태그문의 경우 조건식이 true를 반환하는 태그를 찾으면 거기서 멈추고 해당 태그의 쿼리만 실행합니다. 다시말해 조건식을 가진 여러개의 태그 오로지 한개의 태그내부 쿼리만 실행됩니다. 대부분의 프로그래밍 언어에서 사용되는 if else와 비슷한 역할을 합니다.    태그 안에서 태그와 를 작성합니다. 태그는 각각 조건식(test 속성)을 가지며 여러번 작성할 수 있습니다. 실행 시 태그의 조건식을 순서대로 확인하여 true를 반환하는 태그 안의..

Union, Union All

- Union : 두 테이블을 합치는데 중복 제거 후 합침     - Union All : 두 테이블을 합치는데 중복 제거 없이 합침   ※ 주의 사항!1. 각 쿼리의 select 절 컬럼의 개수와 데이터 타입이 일치해야 한다.2. 두번쨰 쿼리부터는 별칭을 생략 가능하다.3. Order by는 쿼리문의 마지막에 사용가능하고 별칭 및 순번만 사용가능 하다. (Ex. A.job은 사용불가함)           참고 : https://gent.tistory.com/383

테이블 권환 확인

테이블 권한 확인하는 쿼리문SELECT * FROM DBA_TAB_PRIVS WHERE OWNER = '계정명';  이렇게 작성하면 해당 계정이 가지고 있는 테이블들의 권한들을 확인 할 수 있다.  SELECT * FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE "CREATE%SYNONYM'; 이렇게 작성하면 현재 계정의 시노님 권한을 확인 할 수 있다.Create any synonym과 create synonym 이렇게 나오는데전자는 다른 계정의 시노님을 만들 수 있도록 하는 반면,후자는 다른 계정의 시노님을 만들지 못하고 본인의 계정만 만들 수 있다. 즉, Create synonym opr_app.t_oprb_hipas_total_amt01m1 for opr_main.t_o..

오라클 - 프로시저의 COMMIT

프로시저에 BEGIN 이 여러가 있을 때 COMMIT이 붙어있는 곳도 있고 없는 곳도 있는 이유?? => - `COMMIT`이 있는 블록은 해당 작업을 즉시 반영하는 중간 저장 역할을 함.- `COMMIT`이 없는 블록은 전체 작업이 완료될 때까지 기다리며, 트랜잭션의 일관성을 유지하기 위해 사용- 트랜잭션 제어와 비즈니스 로직의 요구사항에 따라 각 `BEGIN` 블록에서 `COMMIT`을 사용할지 말지가 결정됨   1. 트랜잭션 (Transaction)트랜잭션은 하나의 작업 단위로, 논리적으로 연관된 작업을 묶어서 실행하는 것.트랜잭션은 ACID(Atomicity, Consistency, Isolation, Durability) 속성을 따라야 하며, 데이터베이스 작업이 부분적으로 실행되거나 데이터가 불..

오라클 - 프로시저, 커서

● CURSOR (커서)- 오라클 서버에서 SQL문 실행할때마다 처리를 위한 메모리공간- Oracle은 프로시저 내부에서 커서Cursor를 사용할수 있음.- 행의 집합을 다루기에 많은 편리한 기능을 제공- 테이블에서 여러개의 행을 쿼리한 후 , 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식 *처리 순서커서 선언 (CURSOR 커서이름 )  --> 커서열기 ( OPEN 커서이름) --> LOOP문으로 ( 커서에서 데이터 가져오기(FETCH) --> 데이터 처리  ) -->커서 닫기 (CLOSE 커서이름 )    - FETCH문을 통해 커서에서 한행씩 데이터를 읽고, LOOP문을 통해 모든 행을 처리한 후 커서를 닫음  %NOTFOUND  :  커서 영역의 자료가 모두 FETCH 됐었다면 TRUE%F..

Mybatis - Result Type

● ResultType: resultType은 퀴리 결과가 맵핑될 Java의 객체 타입을 지정한다.예 ) resultType="java.util.Map" 으로 설정하면, 쿼리 결과가 Map 형태로 반환된다.       이때 데이터베이스 컬럼 이름이 Map의 키가 되고, 각 키의 값이 맵핑된 행의 값이 된다.    - lowerMap : resultType="lowerMap"은 일반적으로 사용자 정의 타입으로 정의된 타입 핸들러를 통해 제공되는 기능이다. LowerMap의 경우, 반환된 Map의 모든 키가 자동으로 소문자로 변환되도록 설정된다.    마이바티스 select 쿼리문 예시SELECT A.USER_ID AS USER_ID , A.USER_NM AS USER_NM , A.DEPT_C..

ModelAndView

ModelAndView의 주요 개념뷰 이름: 렌더링할 뷰의 이름을 설정합니다. 이 뷰 이름은 보통 템플릿 엔진(예: Thymeleaf, JSP, Freemarker 등)에 의해 해석된다.모델 데이터: 뷰에 전달할 데이터를 설정합니다. 데이터는 Map 형태로 저장되며, 뷰에서 참조할 수 있다.리다이렉션: 특정 URL로 리다이렉션할 수 있습니다. 이는 뷰 이름 앞에 redirect:를 붙여 설정한다. ModelAndView의 사용법ModelAndView 객체 생성: new ModelAndView("redirect:" + url)을 사용하여 리다이렉션 URL을 설정한다.리다이렉션 처리: "redirect:" 접두사를 사용하여 특정 URL로 리디렉션한다. 만약 카카오 API를 사용해서 로그인, 로그아웃을 구현할..