Java 和 SQLite 触发器



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

您可以使用data_version编译指示(任何语言,而不仅仅是Java)来查看是否有其他东西修改了数据库。

如果在此期间通过任何其他连接将更改提交到数据库,则从同一连接两次调用"PRAGMA data_version"返回的整数值将不同。对于在同一数据库连接上进行的提交,"PRAGMA data_version"值保持不变。

因此,基本上您执行一个PRAGMA data_version语句,该语句为您提供了一行,其中包含您保存的整数值。下次你想看看是否有其他东西修改了数据库时,再做一次,比较新旧数字,看看它们是否不同。

如果你想要更多的推送通知,你可以将其与Java NIOWatchService机制结合起来,以监视数据库文件(如果你正在使用WAL日志)的更改,然后在触发时检查data_version。如果需要,这个SO问答可以帮助您入门。

最新更新