Topic: 请问在java中如何调用MsSqlServer的transaction?

  Print this page

1.请问在java中如何调用MsSqlServer的transaction? Copy to clipboard
Posted by: kanlou
Posted on: 2004-08-15 00:18

在sql中使用:
begin tran tran_name
update table_A ......
update table_B ......
commit tran tran_name

是将其放入procdure中,由java调用,还是别的方式。

本人在这方面是初学,希望能给予解答,谢谢。

2.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: heaven
Posted on: 2004-08-15 08:56

Connection类能够设置事务支持,初学者多看看javadoc是很有帮助的
http://java.sun.com/j2se/1.4.2/docs/api/index.html

3.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: kanlou
Posted on: 2004-08-15 10:42

谢谢,但是我不用Connection中的事务支持。

4.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: scud
Posted on: 2004-08-15 12:02

try
{
setAutoCommit(false);

语句集合

commit();
}
catch()
{
if(失败) { rollback(); }
}
finally
{

setAutoCommit(true);
}

5.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: heaven
Posted on: 2004-08-15 12:09

kanlou wrote:
谢谢,但是我不用Connection中的事务支持。

那我就不懂你的问题了,最好再解释一下

6.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: kanlou
Posted on: 2004-08-15 18:03

我希望将对于事务的操作放在ms sqlserver中的存储过程或者是方法中。

7.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: heaven
Posted on: 2004-08-15 21:09

kanlou wrote:
我希望将对于事务的操作放在ms sqlserver中的存储过程或者是方法中。

存储过程的语法要查ms sqlserver的文档,方法是指什么?java类的method,那不是一样嘛。

8.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: kanlou
Posted on: 2004-08-16 01:41

谢谢,

我没有把意思表达清楚,是这样的:
我知道在ms sql server 中由这样的sql:

begin tran prodIn_tran --prodIn_tran是transaction的名称
--prodin是表名;
  insert into prodin(prodId,inDate,num,price) values(112,'2004-9-30',100,5)
  if @@rowcount<>1
    begin
      rollback tran prodIn_tran
      return
    end
--store也是表名
  update store set num=num+100 where prodId=112
  if @@rowcount<>1
    begin
      rollback tran prodIn_tran
      return
    end
commit tran prodIn_tran

在一个transaction中对同一个库中的两个表都做了更新,但是我不知道如何在java中调用这个prodIn_tran,并将上面的tran中的常量改为变量来使用。

9.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: heaven
Posted on: 2004-08-16 08:17

也就是说,事务的处理完全是交给存储过程来做的,那么java调用时也就和普通调用存储过程一样了,我没用过MS SQL,举个pl/sql的例子吧(不过后面的用法是一样的):
CallableStatement callableStmt=conn.prepareCall("{call 存储过程名称(?,?)}");
callableStmt.setObject("参数名1",param1);
callableStmt.setObject("参数名2",param2);
callableStmt.execute();

10.Re:请问在java中如何调用MsSqlServer的transaction? [Re: kanlou] Copy to clipboard
Posted by: kanlou
Posted on: 2004-08-16 13:29

问题解决了,以前我没有在存储过程中使用过ms sql server的tran,以为tran也可以象存储过程一样在java中调用,现在知道应该将其封装在存储过程中。

谢谢了。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923