Mybatis는 DB가 자동생성 키를 지원(mysql, mariadb 등)한다면 userGeneratedKeys 속성을 사용할 수 있고 지원하지 않은 DB(Oracle)는 <selectKey>를 사용할 수 있다.
create table tb_member (
id int auto_increment primary key,
password varchar(50) not null,
name varchar(50)
);
id 컬럼에 자동증가 속성이 있는 테이블을 생성한다.
<insert id="insertMember" parameterType="Member" useGeneratedKeys="true" keyProperty="id">
insert into tb_member (
password,
name
)
values (
#{password},
#{name}
)
</insert>
테스트를 위해 이전에 사용했던 insert 문에서 id 부분만 삭제한다.
id가 자동생성된 값으로 들어갔다.
create table tb_member (
id number primary key,
password varchar2(50) not null,
name varchar2(50)
);
CREATE sequence seq_member;
Member 정보를 담을 수 있는 테이블과 자동증가 값을 가져오기 위한 시퀀스를 생성한다.
<insert id="insertMember" parameterType="Member">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
select seq_member.nextval from dual
</selectKey>
insert into tb_member (
id,
password,
name
)
values (
#{id},
#{password},
#{name}
)
</insert>
useGeneratedKeys를 사용한 것과 같은 결과로 저장된다.
Mybatis 객체 형식으로 update, delete 하기 (0) | 2022.05.10 |
---|---|
Mybatis 객체 형식으로 insert, select 하기 (0) | 2022.05.09 |
Mybatis 데이터베이스 접속 (0) | 2022.05.04 |
댓글 영역