草庐IT

MySQL事务

全部标签

java - 被事务 : @console:Oracle (INTELLIJ CLIENT) 锁定

我正在使用IntelliJIDEA14.1.4,最近我们将数据库连接到客户端并且它工作正常,直到最近我们开始出现错误[2015-09-2810:12:55]lockedbytransaction:@console:Oracle->@localhost现在我们无法执行任何交易,因为我们不断收到相同的错误。我们尝试用谷歌搜索错误,但找不到任何解决问题的方法。任何帮助将不胜感激!!! 最佳答案 我在之前运行的查询失败后发生了这种情况——使用PyCharm,而不是IntelliJ,但它是同一个JetBrains系统。我没有打开自动提交。由于

java - 如何在 DDD 中管理域逻辑和事件之间的事务?

我正在研究DDD和事件源中的编程。我看到一个示例,当调用域逻辑(例如Order.placeOrder())时,它会发布一个事件(例如OrderPlaced)。并且该事件将作为事件存储发送到MQ。域逻辑(Order.placeOrder())应该是一个原子API,如果使用Spring作为事务管理器,它应该有@Transactional注释。现在我的问题是:如何确保数据库更改和事件发送在同一个事务中?即,如果在将数据提交到数据库时出现任何错误,则事件永远不会发送到MQ。我知道有像XA或2阶段提交这样的解决方案来强制数据库更新并在同一事务中发送MQ消息。但现在似乎并没有被广泛使用。如果还是用

java - Spring 中的事务原子性

SQL/Spring中的事务原子性是什么意思,什么不是?我正在考虑以下情况。如果我错了请纠正我:此代码不正确:@TransactionalpublicvoidvoteUp(longfooId){Foofoo=fooMapper.select(fooId);//SELECT*FROMfooWHEREfooId==#{fooId}foo.setVotes(foo.getVotes()+1);fooMapper.update(foo);//UPDATEfooSETvotes=#{votes}(...)WHEREfooId==#{fooId}}尽管它是事务性的,但如果在多台机器/多线程中同时调

java - JPA事务隔离和实体锁的区别

我已经阅读了有关事务隔离级别的内容。它用于防止并行事务执行错误。这很明显。还有可用于实体的锁定模式。我了解它们的工作原理。但是我找不到需要锁定的原因?我已经使用过事务隔离级别。为什么我必须使用锁定?隔离级别和锁定做同样的工作吗? 最佳答案 事务隔离和JPA实体锁都是并发控制机制。transactionisolation应用于JDBC连接级别,范围是事务生命周期本身(您不能更改与当前正在运行的事务的事务隔离)。现代数据库允许您同时使用2PL(two-phaselocking)隔离级别和MVCC那些(SNAPSHOT_ISOLATION

java - 是否有针对 Java 中的 XA 事务文件访问的开源解决方案?

是否可以在Java中对文件系统进行XA事务访问?我想在事务边界内操作文件,并且我的事务必须通过JTA参与分布式事务(所以我想文件系统需要作为XAResource进行访问)。我不需要支持细粒度的读/写文件访问;将每个文件视为记录足以满足我的需要。有没有人知道已经有这样做的开源项目?我不想实现这个烂摊子只是为了发现它已经完成了......我听到一些谣言说JBossTranscations将增加对此的支持(参见示例thisdiscussion),但找不到关于此的官方声明。顺便说一下,如果您需要事务性文件访问但不需要事务参与两阶段提交,我建议您看一下ApacheCommonsTransacti

java - JPA2+Hibernate 3.6.0 中的 JTA 或 LOCAL 事务?

我们正在重新考虑我们的技术堆栈,以下是我们的选择(由于应用程序的复杂性等原因,我们离不开Spring和Hibernate)。我们还从J2EE1.4迁移到JavaEE5。技术栈JavaEE5JPA2.0(我知道JavaEE5只支持JPA1.0但我们想使用Hibernate作为JPA提供者)Hibernate3.6.0(我们已经有了许多具有自定义类型的hbm文件等所以我们不想迁移他们此时转到JPA。这表示我们希望jpa/hbm映射都有效在一起,因此Hibernate作为JPA提供者而不是使用App自带的默认服务器)现在的问题是我想坚持使用本地事务,但其他团队成员想使用JTA。在过去的9年里

java - JAVA和MYSQL如何删除一条记录(字符串)

我可以成功删除一个整数,但是当我尝试将其设为STRING时,它说“where子句中的未知列itemtodelete但我的ITEMTODELETE是在数据库中声明的字符串而不是整数它不删除字符串多少?下面是我的代码:privatevoidDeleteButtonActionPerformed(java.awt.event.ActionEventevt){intdel=(prompt):if(del==JOptionPane.YES_OPTION){DelCurRec();}}publicvoidDelCurRec(){Stringid=field.getText();StringSQL=

java - 抛出 RuntimeException 会导致事务回滚,但 Spring Boot 应用程序中不会出现异常

在下面的代码中,抛出一个Exception不会回滚事务,但是抛出一个RuntimeException会。@ServicepublicclassHelloService{@AutowiredprotectedCustomerRepositoryrepository;@Transactionalpublicvoidrun()throwsException{repository.save(newCustomer("Jack","Bauer"));thrownewRuntimeException("Kabooom!!!");//Transactionisrolledback.Databasei

java - ClassNotFoundException : com. mysql.jdbc.Driver。用于 Web 应用程序的 JDBC MySQL 驱动程序

这个问题在这里已经有了答案:HowtoinstallJDBCdriverinEclipsewebprojectwithoutfacingjava.lang.ClassNotFoundexception(13个答案)关闭7年前。所以我有一个MySQLJDBC驱动程序的.jar文件,它在我的库源文件夹下,我有以下代码:publicstaticConnectiongetConnection()throwsSQLException{Connectionconn=null;try{Class.forName("com.mysql.jdbc.Driver").newInstance();Strin

java - 从 2.6 升级到 3.7 时出现 BIRT JDBCException "Cannot load JDBC Driver class: com.mysql.jdbc.Driver"

我正尝试在我的Tomcat服务器上升级我的birt-viewer的版本,但我似乎在加载JDBC驱动程序时遇到错误:exception.error(1time(s))detail:org.eclipse.birt.report.engine.api.EngineException:Anexceptionoccurredduringprocessing.Pleaseseethefollowingmessagefordetails:Cannotopentheconnectionforthedriver:org.eclipse.birt.report.data.oda.jdbc.org.ecl