Mybatis下Oracle,Mysql插入返回主键

Model代码:

 

 

public class Task {

	private Long taskId;
	private String message;
       
        //setter and getter
	
}

 

 

Oracle:

这里就用Mybatis的generator工具生成的XML模板做例子

 

说明:

1、sel_task_id 是自己在Oracle中建立的seq

2、resultType是主键的类型,order是表示在insert语句之前运行还是之后,keyProperty代表的是Task的主键。

3、特别注意,用了selectKey之后,需要删除generator工具生成的主键if条件判断,不然会报ORA-01400: 无法将 NULL 插入 TASK_ID 的错误

4、这条insert语句返回的依然是插入的条数1,task的主键会自动加载到model的Task中,成功后就可以直接操作Task获取主键了.

 

 


    
      select seq_task_id.nextval as taskId  from dual
    
    insert into TASK
    
        TASK_ID,
      
        MESSAGE,
      
     
    
       #{taskId,jdbcType=DECIMAL},
      
        #{message,jdbcType=VARCHAR},
      
     
  

 

 

MYSQL:

这个没什么可说明的,比较简单。

 


	insert into TASK(TASK_ID,MESSAGE)
	values(#{taskId},#{message})

 

 

你可能感兴趣的:(Mybatis应用,mybatis,Oracle,mysql,返回主键)