gpt4 book ai didi

sqlite - 将 sqlite 用于数据库队列的最佳实践

转载 作者:行者123 更新时间:2023-12-03 16:19:29 31 4
gpt4 key购买 nike

我正在为生产者-消费者队列使用 sqlite 数据库。

一个或多个生产者使用新的自动增量主键一次插入一行。

有一个使用者(用 java 实现,使用 sqlite-jdbc 库),我希望它读取一批行并删除它们。似乎我需要事务来执行此操作,但是尝试将 SQLite 与事务一起使用似乎无法正常工作。我是不是想多了?

如果我最终确实需要事务,那么在 Java 中执行此操作的正确方法是什么?

 Connection conn;
// assign here

boolean success = false;
try {
// do stuff
success = true;
}
finally
{
if (success)
conn.commit();
else
conn.rollback();
}

最佳答案

this trail有关使用 Java JDBC 处理事务的介绍。

至于你的用例,我认为你应该使用事务,特别是如果消费者很复杂。棘手的部分总是决定一行何时被消耗以及何时应该再次考虑。例如,如果在消费者实际执行其工作之前出现错误,您将需要回滚。但如果该行包含非法数据(如数字字段中的文本),则回滚将变成无限循环。

关于sqlite - 将 sqlite 用于数据库队列的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631051/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com