MyBatis取得新插入数据的ID

通常需要取得新插入数据的ID,可以通过一下方式来实现

方式一:

[html]  view plain  copy
  1. <insert id="doCreate" parameterType="Address" useGeneratedKeys="true" keyProperty="id">  
  2.     INSERT INTO Address(UId,LinkName,Address,Phone,Remark,Time,ZipCode)  
  3.     VALUES(#{uid},#{linkName},#{address},#{phone},#{remark},now(),#{zipCode})  
  4. insert>  

方式二:

[html]  view plain  copy
  1. <insert id="doCreate" parameterType="Address" >  
  2.     <selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" >  
  3.      SELECT @@IDENTITY  
  4.     selectKey>  
  5.     INSERT INTO Address(UId,LinkName,Address,Phone,Remark,Time,ZipCode)  
  6.     VALUES(#{uid},#{linkName},#{address},#{phone},#{remark},now(),#{zipCode})  
  7. insert>  

注意程序里取得address.getId()即可取到插入数据的自增ID,而不是取得sql执行的返回值。




Dao层接口

1
void  insert( @Param ( "user" ) User user);

五、Service层实现

1
2
3
4
5
6
7
@Override
public  void  insert() {
     User user =  new  User();
     user.setName( "zain" );              
     dao.insert(user); 
     System.out.println(user.getUserId);  //发现ID已经获取了
}

你可能感兴趣的:(mybatis)