mybatis가 insert 작업을 할 때 삽입된 데이터의 id를 어떻게 되돌릴 수 있습니까?

1907 단어
1,useGeneratedKeys="true"는 자성장 ID를 얻을 수 있습니다. 자성장 방식만 있는 데이터베이스(mysql, mssql 등이지만oracle는 지원하지 않습니다)는selectKey를 사용하여eg:
 
    insert into table(...) values (...) 
     
    SELECT LAST_INSERT_ID() AS id 
     

2. 자동 키 생성을 지원하지 않는 경우(예를 들어 Oracle)는 다음과 같은 방식을 사용할 수 있다.
eg:
     
           
             select my_seq.nextval from dual 
          
        ...
    

첫 번째 더 나은 해결 방법:
방법:mapper에서 keyProperty 속성을 지정합니다. 예는 다음과 같습니다: Xml 코드 모음 코드
  
    insert into user(userName,password,comment)  
    values(#{userName},#{password},#{comment})  
 

위에서 보듯이, insert에서 키Property="userId"를 지정했는데,userId는 삽입된 User 대상의 키 속성을 나타냅니다.
User.java
Java        
public class User {  
    private int userId;  
    private String userName;  
    private String password;  
    private String comment;  

    //setter and getter  
}  
 UserDao.java
Java        
public interface UserDao {  

    public int insertAndGetId(User user);  

}  
   :
Java        
User user = new User();  
user.setUserName("chenzhou");  
user.setPassword("xxxx");  
user.setComment("            ");  

System.out.println("      :"+user.getUserId());  
userDao.insertAndGetId(user);//      
System.out.println("      :"+user.getUserId());  
  :
Shell        
      :0  
      :15  
    ,         id 15

본문은https://blog.csdn.net/RAPIER512/article/details/51198684, 부적절하면 삭제를 알려주십시오

좋은 웹페이지 즐겨찾기