存储过程:
CREATE PROCEDURE [insert_employee_1]
(@name_1 [varchar](50),
@age_2 [varchar](50),
@address_3 [varchar](50))AS INSERT INTO [progtest].[dbo].[employee]
( [name],
[age],
[address])
VALUES
( @name_1,
@age_2,
@address_3)select @@identity
GO
=========================
我用getMoreResults(),getResult()和getUpdateCount()都得不到结果,知道的朋友帮帮忙,怎样得到结果?
CREATE PROCEDURE [insert_employee_1]
(@name_1 [varchar](50),
@age_2 [varchar](50),
@address_3 [varchar](50))AS INSERT INTO [progtest].[dbo].[employee]
( [name],
[age],
[address])
VALUES
( @name_1,
@age_2,
@address_3)select @@identity
GO
=========================
我用getMoreResults(),getResult()和getUpdateCount()都得不到结果,知道的朋友帮帮忙,怎样得到结果?
CREATE PROCEDURE [insert_employee_1]
@name_1 [varchar](50),
@age_2 [varchar](50),
@address_3 [varchar](50),
@id int out
AS
INSERT INTO dbo.h_sms_PublicUserMo_tb(UserID,ProductID,FeatureStr,CreateTime)
VALUES (@name_1,@age_2,@address_3,getdate())
--select @@identity
set @id=@@identity
returnGO public int getId(){
int id = 0;
Connection conn = null;
Statement stmt = null;
try {
conn = this.db.getConnection();
stmt = conn.createStatement();
String sql = "{call dbo.insert_employee_1(?,?,?,?)}";
CallableStatement st = conn.prepareCall(sql);
st.setString(1,"13811217419");
st.setString(2,"fdasfdsa");
st.setString(3,"fdasfdsafads");
st.registerOutParameter(4, Types.INTEGER);
st.execute();
id = st.getInt(4);
st.close();
} catch (Exception e) {
logger.debug(e.toString());
} finally {
try {
if(conn!=null)
conn.close();
} catch (SQLException e) {
logger.debug("getContent "+e.toString());
}
}
return id;
}
(@name_1 [varchar](50),
@age_2 [varchar](50),
@address_3 [varchar](50),
@id int out
)
AS INSERT INTO [progtest].[dbo].[employee]
( [name],
[age],
[address])
VALUES
( @name_1,
@age_2,
@address_3)set @id=@@identityreturn
GO
存储过程放在 查询分析器 执行时,提示缺少@id的参数
======================
CallableStatement cs=con.prepareCall("{call insert_employee_1(?,?,?)}");
cs.setString(1, "11111");
cs.setString(2, "222222");
cs.setString(3, "3333333");
cs.registerOutParameter(4, Types.INTEGER);
cs.execute();
int id=cs.getInt(4);
还是得不到结果啊,哪里出问题了?!!
是不是只有在存储过程里用了 out 参数,才在java里用registerOutParameter()方法注册输出参数。1