첫 번째 단계 :
MyBatis Mapper 파일에 속성 " useGeneratedKeys "및 " keyProperty "를 추가합니다. 여기서 keyProperty Java 객체의 속성 이름입니다!
<insert id = "insert"parametertype = "spares"usegeneratedkeys = "true"keyproperty = "id"> spares에 삽입 (spares_id, spares_name, spares_type_id, spares_spec) 값 (#{{id},#{name},#{typeid},#spec})Step 2:
Mybatis가 삽입 문을 실행 한 후에는 객체 스페어의 속성 ID에 자체 증가 값을 자동으로 할당합니다. 따라서, 예비품에 해당하는 getter 방법을 통해 얻을 수 있습니다!
/** * 예비 부품 추가 * @Author hellostory * @param spares * @return */@requestmapping (value = "/insert") @ResponseBody public jsonResponse insert (Spares Spares) {int count = sparesservice.insert (spares); System.out.println ( "총" + count + "레코드의 삽입!" + "/n 방금 삽입 된 레코드의 기본 키 자체 성장 값은 다음과 같습니다." + spares.getId ());추신 : mybatis는 삽입 된 데이터의 자체 성장 ID를 반환합니다.
오늘이 테스트는 버그를보고했습니다. 현상은 새로 등록 된 사용자가 모든 사람의 보고서를 볼 수 있다는 것입니다. 오래된 사용자에게는 아무런 문제가 없습니다. 로그를 확인할 때 새로 등록 된 사용자의 ID가 NULL 인 것으로 밝혀 졌으므로 전체 테이블 유효한 데이터 쿼리가 수행되었습니다. 그러나 테이블의 기본 키는 비어있을 수 없으므로 새 등록 된 사용자 ID는 어떻게 무일하게 될 수 있습니까? 그 이유는 서비스 계층의 코드가 매개 변수 객체를 직접 반환하고 XML이 구성을 만들지 않기 때문입니다.
특정 솔루션은 XML에서 삽입 메소드를 구성하는 것입니다.
usegeneratedKeys = "true"keyProperty = "registerID"
keyproperty 값은 엔티티 VO 객체의 기본 키 속성에 해당합니다.
세부 사항은 다음과 같습니다.
<code> @override public registers create (registers r) {registersmapper.insert (r); RETOR R; } </code>registermapper.xml의 삽입 방법은 다음과 같습니다.
<code> <insert id = "insert"keyProperty = "registerID"ParameterType = "com.ciji.zzaservice.pojo.base.registers"usedgeneratedKeys = "true">
일반 삽입 문을 실행하십시오
</삽입> </code>
이러한 방식으로 컨트롤러 계층에서 새로 삽입 된 데이터의 자체 성장 기본 키를 얻을 수 있습니다.
XML에 두 가지 속성을 추가하는 의미와 관련하여 온라인 설명은 다음과 같습니다.
usegeneratedkeys
(삽입에만 사용) MyBatis는 JDBC의 getGeneratedKeys 메소드를 사용하여 데이터에 의해 내부적으로 생성 된 기본 키 (예 : MySQL 및 SQL Server와 같은 데이터베이스 관리 시스템의 자동 증가 필드)를 가져 오라고 지시합니다. 기본값 : False.
keyproperty
(삽입에만 사용) 속성을 표시하는 MyBatis는 getGeneratedKeys 또는 삽입 문의 SelectKey 하위 요소를 통해 그 값을 설정합니다. 기본값 : 설정되지 않습니다.
요약
위는 편집기가 소개 한 삽입 레코드의 자체 성장 필드 값 (ID)입니다. 모든 사람에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 모든 사람에게 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!