mybatis 3

[MyBatis] selectKey를 사용하여 생성된 키값을 Java에서 리턴받는 방법

실무에서는 데이터베이스에 새 레코드를 삽입하면서 생성된 키값(예: AUTO_INCREMENT 값)을 객체에 매핑하고, 이를 서비스나 다른 로직에서 활용하는 일이 흔합니다. 이번 글에서는 실무에서 자주 사용하는 패턴을 중심으로 selectKey를 이용해 키값을 가져오는 방법을 설명합니다.selectKey 실무 활용 시 주의점데이터베이스의 자동 키 생성 방식 파악MySQL, PostgreSQL, Oracle 등 데이터베이스마다 키 생성 방식이 다릅니다.예:MySQL: AUTO_INCREMENT + LAST_INSERT_ID()PostgreSQL: SERIAL 또는 RETURNING idOracle: SEQUENCE키값 매핑 확인MyBatis에서 keyProperty가 올바른 필드에 매핑되는지 검증합니다. 필..

Develop 2024.12.31

[Mybatis] PK 를 count 혹은 max 쿼리로 생성 후 리턴받기

insert 쿼리에서 pk 를 count 나 max 쿼리에 +1 을 하는 형태가 있을 수 있다.이때 만들어진 pk 값을 다른 상세테이블이나 연계 테이블에 사용해야할 경우 리턴받아야 한다. ▶ selectKey 를 사용해서 pk 로 사용할 쿼리를 작성 한다. - resultType 은 데이터형태를 지정한다.  - keyProperty 는 받을 변수명이다 parameterType 의 model 파일에 존재해야 한다.  - order 는 쿼리 실행전인지 실행후인지를 결정한다. after 는 당연히 실행후겠죠 SELECT F_COMMON_DOCNO('od_order_mst') INSERT INTO od_order_mst (ord_no, s..

Develop 2024.09.03

[Mybatis] 반복되는 같은 쿼리 sql 로 정의해서 include 해서 변수처럼 사용하기

mybatis 로 쿼리를 작성하다보면 동일한 쿼리가 여러곳에 들어가는 경우가 생긴다특히 postgresql 로 보면 with 같은 쿼리는 여러곳에서 반복적으로 사용할 수 있다. 그럴때 마다 같은 쿼리를 매번 작성하기 보단변수처럼 sql 로 정의해서 include 해서 사용하면 효율적이다.  상단에 with 쿼리를 anpdsmDispCat_with_adc 로 정의하고  를 사용해 쿼리를 불러올 수 있다. 물론 서비스의 파라미터도 사용할 수 있다.  주의할점) include 하는 곳보다 상단에 위치할 것.  WITH RECURSIVE adc (anp_disp_cat_cd, upp_anp_disp_cat_cd, disp_cat_nm, disp_cat_thmb_bimg_file_url, clr_infr_i..

Develop 2024.09.03