当前位置: 首页 > 面试题库 >

如何在JDBC中启动事务?

呼延烈
2023-03-14
问题内容

Connection.setTransactionIsolation(int)
警告:

注意:如果在事务期间调用此方法,则结果是实现定义的。

这就提出了一个问题: 如何在JDBC中开始事务? 很明显,如何结束事务,但不知道如何开始事务。

如果a
Connection从事务内部开始,我们应该如何在事务Connection.setTransactionIsolation(int)外部调用以避免特定于实现的行为?


问题答案:

回答我自己的问题:

  • JDBC连接以启用的自动提交模式开始,在该模式下,每个SQL语句都与事务隐式地划分了界限。
  • 希望每个事务执行多个语句的用户必须关闭自动提交。
  • 更改自动提交模式会触发当前事务的提交(如果一个事务处于活动状态)。
  • 如果启用了自动提交,则可以随时调用Connection.setTransactionIsolation()。
  • 如果禁用了自动提交,则只能在事务之前或之后调用Connection.setTransactionIsolation()。在事务中间调用它会导致未定义的行为。

资料来源:

  • Java文档
  • JDBC教程


 类似资料:
  • 问题内容: 有没有办法过早中止交易?说,我已经向数据库发送了一个命令,该命令运行五分钟,四分钟后,我想中止它。 JDBC是否定义了一种向数据库发送“停止此连接上正在执行的操作”信号的方法? 问题答案: 如james所提到的,Statement.cancel()将取消正在运行的Statement的执行(选择,更新等)。JDBC文档特别指出,Statement.cancel()可安全地从另一个线程运行

  • 问题内容: 我们有: MyInterface有一个方法:。 当go()执行时,我们开始一个新的事务,该事务在方法完成时进行提交/回滚-很好。 现在,在go()中,我们在MyClass中调用了具有的私有方法。看来Spring会“忽略” REQUIRES_NEW批注,并且不会启动新的事务。我相信这是因为Spring AOP在接口级别(MyInterface)上运行,并且不会拦截对MyClass方法的任

  • 问题内容: 我只是第一次在Eclipse中安装了Maven插件。现在有关于Eclipse启动的消息,我应该在JDK中启动Eclipse而不是jre来使Maven组件运行良好。我在eclipse.ini中使用了- vm参数: 但是重新启动后消息仍然存在。 我已经尝试过: 还有: 但是什么都没有改变。 如何在JDK中启动Eclipse? 提前致谢。 问题答案: 如果您使用的是Windows,请右键单击

  • 大家好,我正在windows 7中使用xampp v3.2.1。我想在windows启动时自动启动它,但无法启动。 我尝试了这里提供的解决方案,但在服务中找不到任何东西。 我在D驱动器中安装了xampp,这就是为什么apache和mysql在从run打开services.msc时不显示在服务中的原因。 我已经从xampp控制面板的config(配置)按钮尝试过了,我选中了autostart(自动启

  • 本文向大家介绍Spring如何在一个事务中开启另一个事务,包括了Spring如何在一个事务中开启另一个事务的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring如何在一个事务中开启另一个事务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 spring使用@Transactional开启事务,而且该注解使用propagation属

  • 更新: 我发现我将类A注入到扩展外部类的类C中,该类不受spring管理,如下所示: 这应该是交易失败的主要原因。 另一个问题:有没有办法让spring管理类A的事务,该类已经注入到非spring处理的anothor类中? 我正在用Spring Boot和Mybatis建立一个项目。 我有一个问题,其中一个服务类无法创建事务连接,也不会执行回滚。 我发现,如果我去掉B类中A类的注入,就像这样: 类