# selectkey

게시글 작성 기능 (23.08.28)
🌷 게시글 작성 오늘은 게시글 작성 기능을 구현해 보자. 😉 삽입 : /board2/1/insert (code == BOARD_CODE, 게시판 종류) 수정 : /board2/1/1500/update (no == BOARD_NO, 게시글 번호) 삭제 : /board2/1/1500/delete URL은 을 사용하여 위와 같은 형태로 만들어 볼 것이니 기억하고 있자! 또한 오늘은 MyBatis의 가장 강력한 기능인 동적 SQL을 사용해 볼 것이다. 💡 동적 SQL > 프로그램 수행 중 SQL을 변경하는 기능 🌱 useGeneratedKeys 속성 DB 내부적으로 생성한 키(시퀀스)를 전달된 파라미터의 필드로 대입 가능 여부 지정 대입 가능 : true / 불가능 : false 🌱 selectKey 태그 INSERT/UPDATE 시 사용할 키(시퀀스)를 조회해서 파라미터의 지정된
MyBtis foreach / selectKey
selectKey 활용하여 조회된 결과 값을 keyProperty 변수에 저장 foreach item : 반복문 안에서 활용할 요소의 변수명 collection : 반복할 리스트 혹은 배열 타입 separator : 데이터를 구분할 구분자
Mybatis <selectKey> 사용법
Mybatis 벌크 연산 쿼리를 작성 중 A테이블의 PK를 B테이블에 같이 INSERT를 진행하는 상황이 생겼다. INSERT 이전 사용 그래서 를 사용하여 wmdepm테이블 INSERT이전에 키 값을 조회해서 INSERT를 하도록 쿼리를 작성했다. 여기서 INSEXPNO() MYSQL에서 사용자 함수를 만들어 AUTO_INCREMENT의 역할을 하는 것으로 생각하면 된다. INSERT 이후 사용 select key 엘리먼트 속성 keyProperty: selectKey구문의 결과가 셋팅될 대상 프로퍼티. keyColumn: 리턴되는 결과셋의 칼럼명은 프로퍼티에 일치한다. 여러개의 칼럼을 사용한다면 칼럼명의 목록은 콤마를 사용해서 구분한다. resultType: 결과의 타입. 마이바티스는 이 기능을 제거할 수 있지만 추가하는게 문제가 되지는 않을것이다. 마이바티스는 String을 포함하여 키로 사용될 수 있는
Mybatis : selectKey사용법
resultType으로 최종반환형은 string keyProperty에 임의로 지정해주는 값은 values에 들어갈 변수명을 지정해주는것 order="BEFORE"는 insert가 되기전 selectKey를 지정해준다는 뜻이다 먼저 SELECT구문을 순서대로 살펴보겠다 cast(detailaccountcd as unsigned) -> 현재 데이터타입이 varchar인 detailaccountcd 칼럼을 부호가 없는 숫자로 캐스팅 한다는것 IFNULL(MAX(cast(detailaccountcd as unsigned)),0) + 1 -> IFNULL은 괄호안의 왼쪽값이 null값일 경우 오른쪽 값으로 바꾼다는것인데 여기서 0으로 지정했으니 null값일 경우 0으로 바꾸는것을 예외처리한것이고 컬럼에 값이 있을경우 MAX를 이용했으니 최대값을 불러오게되고 +1을 주었으니 최대값 +1한 값이 생성된다. 현재 숫자로 캐스팅되었으니 현재 컬럼의 최대값 +
[MyBatis] selectKey
1번 방식 mysql auto-inc를 쓸때, auto-inc된 값이 필요할 때 selectKey 쓰는 방식 https://yookeun.github.io/java/2014/07/11/mybatis-selectkey/ 2번 방식 이렇게 해도 알아서 매핑이 되는군