Spring JDBCTemplate 使用 MySQL 进行表锁定

发布于 2024-07-20 07:41:07 字数 144 浏览 6 评论 0原文

我刚刚将我们的一个应用程序从纯 JDBC 迁移到 Spring 的 JDBCTemplate。 我想知道如何为表创建写锁。 我是否只执行“LOCK TABLE foo”查询,或者是否有通用的方法在 JDBCTemplate 中执行此操作?

谢谢!

I just migrating one of our applications from pure JDBC to Spring's JDBCTemplate. I was wondering how to create a write lock for a table. Do i just execute a "LOCK TABLE foo" Query or is there a generalisized way for doing this in JDBCTemplate?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

为你拒绝所有暧昧 2024-07-27 07:41:08

JdbcTemplate 使用数据源,因此不能保证您将使用相同的连接来执行 LOCK TABLE 语句以及在下次调用 JdbcTemplate 时要执行的操作。 因此,在交易中执行此操作很重要。 设置 PlatformTransactionManager,可以是 JdbcTemplate 的数据源上的 DataSourceTransactionManager,也可以是 JtaTransactionManager(如果 JdbcTemplate 使用容器提供的 JNDI 数据源)。 您可以将您的方法注释为 @Transactional 或使用 PlatformTransactionManager 以编程方式创建事务。

JdbcTemplate uses a DataSource, so it's not guaranteed that you will use the same connection for the LOCK TABLE statement and whatever you're going to do in the next call to JdbcTemplate. So it's important that you do this in a transaction. Set up a PlatformTransactionManager, either a DataSourceTransactionManager on the JdbcTemplate's DataSource, or a JtaTransactionManager if the JdbcTemplate is using a container-provided JNDI DataSource. You can annotate your method as @Transactional or create a transaction programmatically using the PlatformTransactionManager.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文