[英]How to return Id insert stored procedure + mybatis
I have a stored procedure that return an ID (sql server 2005): 我有一个返回ID(SQL Server 2005)的存储过程:
BEGIN
INSERT INTO
rolTemplateWeek(rolWeek,employee,date_insert)
VALUES(@numberRol,@employeeId,getDate())
Select @id = @@IDENTITY
END
Mapper.xml Mapper.xml
<insert id="saveRol" parameterType="com.service.specual.dto.RolWeek" statementType="CALLABLE">
{ call saveRolWeek(
#{numberRol,javaType=Integer,jdbcType=INTEGER,mode=IN},
#{employeeId,javaType=Integer,jdbcType=INTEGER,mode=IN},
#{id,javaType=Integer,jdbcType=INTEGER,mode=OUT}
)}
</insert>
RolWeek.class RolWeek.class
public class RolWeek {
private int id;
private int numberRol;
private int employeeId;
.... get & setters
Mapper.java Mapper.java
RolWeek rolWeek= new RolWeek ();
rolWeek.setNumberRol(120);
rolWeek.setEmployeeId(100);
public int saveServiceRolWeek(RolWeek rolWeek);
Insert fine but not return my ID , only "1" ¿how I could return my inserted ID? 插入正确但不返回我的ID,只能返回“ 1”?我如何才能返回插入的ID?
--
-- Use output clause, make sure id is OUTPUT
--
CREATE PROCEDURE saveRolWeek
@numberRol INT,
@employeeId INT,
@id INT OUTPUT
AS
BEGIN
SELECT @id =
INSERT INTO rolTemplateWeek(rolWeek, employee, date_insert)
OUTPUT INSERTED.ID
VALUES(@numberRol, @employeeId, getDate());
END
-- Sample call with 1, 1 as parameters
DECLARE @retid int = null;
EXECUTE dbo.saveRolWeek 1, 1, @retid = @id OUTPUT;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.