加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JDBC中的事务状态

发布时间:2020-12-15 01:11:04 所属栏目:Java 来源:网络整理
导读:有没有办法知道JDBC中的事务是否处于“持续”状态?我在Connection API没找到任何东西. 谢谢 最佳答案 JDBC不跟踪事务状态. DB的工作是跟踪事务状态. 鉴于此,您仍然有两种方法来跟踪/了解交易状态. 您可以对数据库进行SQL调用,以询问特定于事务的详细信息.对

有没有办法知道JDBC中的事务是否处于“持续”状态?我在Connection API没找到任何东西.

谢谢

最佳答案
JDBC不跟踪事务状态. DB的工作是跟踪事务状态.

鉴于此,您仍然有两种方法来跟踪/了解交易状态.

您可以对数据库进行SQL调用,以询问特定于事务的详细信息.对于oracle,它将在this post中建议的v $transaction表中.

SELECT COUNT(*) 
  FROM v$transaction t,v$session s,v$mystat 
  WHERE t.ses_addr = s.saddr AND s.sid = m.sid AND ROWNUM = 1;

另一种解决方案是在一些常见的框架中使用事务管理器代码,例如hibernate(我相信Spring也有).

public interface Session {
  public abstract org.hibernate.Transaction getTransaction();
}

public Transaction {
  public abstract boolean wasRolledBack() throws org.hibernate.HibernateException;

  public abstract boolean wasCommitted() throws org.hibernate.HibernateException;

  public abstract boolean isActive() throws org.hibernate.HibernateException;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读