Java和SQLite触发器

v8wbuo2f  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(167)

我有一个连接到SQLite3数据库的Java程序。
我想知道,如果在表中添加或删除记录(不一定是从我的程序中),是否有办法通知我的程序。我在考虑触发器,但找不到任何如何将我的Java代码与触发器挂钩的示例。

dzjeubhm

dzjeubhm1#

您可以使用data_version杂注(在任何语言中,不仅仅是Java)来查看是否有其他东西修改了数据库。
如果在此期间通过任何其他连接将更改提交到数据库,则从同一连接两次调用“Pragma data_Version”返回的整数值将不同。对于在同一数据库连接上进行的提交,“PRAGMA DATA_VERSION”值不变。
因此,基本上是执行一条PRAGMA data_version语句,它为您提供保存的具有整数值的单行。下次您想要查看是否有其他东西修改了数据库时,请再次执行此操作,并比较新旧数字以查看它们是否不同。
如果您想要更多的推送通知,您可以将其与Java NIO WatchService机制结合起来,以监视数据库文件(如果您正在使用WAL日志)的更改,然后在触发时检查data_version。如果需要,This SO Q&A有望帮助您开始使用它。

相关问题