如何观察数据库内容是否发生变化

发布于 2024-11-14 00:43:55 字数 353 浏览 3 评论 0原文

我想知道如何观察 Cursor 的底层数据库表是否已更改,以便我可以更新 UI。

是否有任何内置机制?我读过有关 ContentObserver 类的内容,但据我了解,它们只能与 ContentProviders 一起使用,而不能在直接访问数据库时使用。

I'm wondering how to observe if the underlying database tables of a Cursor have changed, so I could update the UI.

Are there any build in mechanisms? I've read about the ContentObserver class but as far as I understand, they can only be used with ContentProviders and not when the database is accessed directly.

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

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

发布评论

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

评论(1

初雪 2024-11-21 00:43:55

我们可以对oracle数据库做同样的事情。
但sqlite不支持存储过程。
你能做的就是运行一个线程来进行数据库操作。经常检查数据库中的数据。每当数据库发生任何更改时。检查数据库,如果数据库大小发生变化,那么您可以调用您的应用程序。

如何从db call

调用java程序 从oracle存储过程调用java程序。

假设有一个oracle存储过程OSP1和一个Java程序Java1。
现在需要在Java1上创建一个oracle存储过程OSP2。
然后我们可以简单地从OSP1调用OSP2。

breif中的步骤是:

  1. 使用loadjava(在安装oracle的bin目录中找到的命令行可执行文件)加载oracle中的java类。
    $bin> loadjava -user scott/tiger Java1.class

上面的类现在已加载到数据库中,并且可以在 dba_object 视图中看到。

  1. 现在创建一个基于 Java1.class 构建的 Oracle 存储过程 OSP2,并将其加载到数据库中。
    $bin>创建或替换过程 OSP2 作为语言 java
    名称 'Java1.method1()';
    其中 method1() 是 java 类 Java1 中的方法。

  2. 现在可以直接执行OSP2了:
    执行OSP2;
    或从 dbms_java 调用
    或者可以从另一个oracle存储过程OSP1调用。

we can do he same with oracle database.
But sqlite doesnot support stored procedure.
What you can do is that you can run a thread for database operation. Check the data in database always. whenver any change occurred in database. check for the database if size of database changes then you can call your application.

How to call java program from db call

Call java program from oracle stored procedure.

Suppose there is oracle stored procedure OSP1 and a Java program Java1.
Now need to create a oracle stored procedure OSP2 on Java1.
Then we can simply call OSP2 from OSP1.

Steps in breif are:

  1. Use loadjava (command line executable found in bin directory of where you installed oracle) to load the java class in oracle.
    $bin> loadjava -user scott/tiger Java1.class

The above class is now loaded in database and can be seen in dba_object view.

  1. Now create an oracle stored procedure OSP2 built on Java1.class loaded in database.
    $bin> create or replace procedure OSP2 as language java
    name 'Java1.method1()';
    where method1() is a method in java class Java1.

  2. Now OSP2 can be directly executed :
    execute OSP2;
    or called from dbms_java
    or can be called from another oracle stored procedure OSP1.

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