와 MySQL의에 삽입 문에서 CURRENT_TIMESTAMP에 기본값 필드의 값을 얻을하는 방법은 아래의 MySQL의 테이블이 : 나는 아래로 MyBatis로 매퍼가는 MyBatis로
CREATE TABLE `mytable` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`phone` VARCHAR(128) NULL DEFAULT NULL,
`createTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=25
;
을
@Mapper
public interface MyMapper {
Integer insertRecord(List<PhoneModel> list);
}
<insert id="insertRecord" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into mytable(phone) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.phone})
</foreach>
</insert>
PhoneModel
에는 id
, phone
, createTime
의 세 가지 속성이 있습니다. 이제 insertRecord
을 호출 한 후 id
을 얻을 수 있지만 createTime
도 받고 싶습니다.
나는 Mybatis에서 documents을 읽었습니다. 여러 개의 속성 이름 (예 : createTime
)을 keyProperty
및 keyColumn
에 추가 할 수 있습니다.
keyProperty (삽입 및 업데이트 전용) getGeneratedKeys 또는 insert 문의 childKey 요소에서 반환 한 키 값을 MyBatis가 설정할 등록 정보를 식별합니다. 기본값 : 설정 해제. 생성 된 열이 여러 개있을 것으로 예상되는 경우 쉼표로 구분 된 속성 이름 목록을 사용할 수 있습니다.
keyColumn (삽입 및 업데이트 만 해당) 생성 된 키를 사용하여 테이블의 열 이름을 설정합니다. 키 열이 테이블의 첫 번째 열이 아닌 경우 특정 데이터베이스 (예 : PostgreSQL)에서만 필요합니다. 생성 된 열이 여러 개일 경우 쉼표로 구분 된 열 목록의 이름은입니다.
나는 쉼표 부동산/열 이름 수단의 구분 된 목록 대해 명확하지 않다. keyProperty = "id, createTime"시도했지만 작동하지 않는 것.
감사합니다.