개발 등/MyBatis 7

MyBatis auto_increment 값 조회

MyBatis 를 이용해서 데이터를 생성할 때 자동생성 (auto_increment)을 사용할 때가 있다. 여러 이유로 (예를 들면 게시판 생성 후 게시판에 연관된 파일 테이블에 게시판 아이디를 사용해야 하는 경우 등) 생성할 때 사용한 auto_increment 값을 참조해야 할 경우 다음과 같이 처리하면 된다. Table Schema CREATE TABLE Member ( id bigint NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, email varchar(255) NOT NULL ); DTO class @Setter @Getter @ToString @Builder public class MemberDTO { private int id; privat..

개발 등/MyBatis 2023.04.05

MS-SQL2000+iBatis selectKey 사용하기

데이터를 인서트한 후 시퀸스값을 리턴할 경우, MS-SQL 에서는 type을 post를 지정한 후 사용하면 된다. SELECT @@IDENTITY AS value INSERT INTO board_notice ( title, writer, gubun, content, write_date, readnum, del_flag ) VALUES ( #title#, #writer#, #gubun#, #content#, getdate(), 0, 'N' ) int seq = (Integer)client.insert("Board.insertBoard", new Board()); 이렇게 하면 seq 값이 입력될 때 자동생성된 시퀸스 값이 된다.

개발 등/MyBatis 2011.10.14

iBatis 동적쿼리로 생성한 <select> 를 두번 호출했을 경우 에러가 발생하면 (remapResults="true")

SELECT $column$ FROM TABLE_NAME WHERE seq = #seq# 위와 같이 작성된 쿼리를 처음 호출 했을 경우엔 정상적으로 작동한다. 예를 들어 column에 'name1'이란 값을 넣었다고 하면 select name1 from TABLE_NAME WHERE seq = 111 이란 쿼리가 실행된다. 문제는 두번째 호출했을 경우 발생한다. 두번째 호출에서 column에 'name2'란 값을 넣게되면 로그엔 정상적으로 select name2 from TABLE_NAME WHERE seq = 111 이렇게 실행되지만, 실제론 에러가 발생하면서 'com.microsoft.sqlserver.jdbc.SQLServerException: 열 이름 name1이(가) 잘못되었습니다.' 라는 에러..

개발 등/MyBatis 2010.08.27