我将Realm用作主数据库和同步引擎,我的问题是如何进行实时查询搜索?
例如当我使用
> java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at JavaNioServer.JavaNioServer.main(JavaNioServer.java:9)
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/user?user=root&password=88224148
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at JavaNioServer.JavaNioServer.main(JavaNioServer.java:24)
并将其绑定到列表视图,更改var _age= 7;
Instance.All<Dog>().Where(d => d.Age == _age).AsRealmCollection();
变量时需要更新视图。换句话说,我想对我的数据库进行“动态”查询。当我要查找不同年龄段的“狗”时,我希望更新视图。但是当我再次运行此查询并将新的集合分配给ViewModel时,我的视图不会更新。
我该怎么办?
更新:
在这里您可以获得示例代码,因此可以重现此问题: https://github.com/Mohsens22/RelamTest
我还必须告诉您,_age
默认情况下会实现IRealmCollection<T>
,因此,如果您通过“写交易”将任何项目添加到集合中,则视图将被更新。可以找到更多信息HERE
答案 0 :(得分:0)
我检查了您的代码示例,发现Dogz
将用Instance.All<Dog>().Where(z => z.Age == nxt).AsRealmCollection();
重新创建。因此,您需要两种方式的绑定模型。
<ListView x:Name="itemListView" ItemsSource="{x:Bind Dogz,Mode=TwoWay}">
这是document关于绑定的内容,您可以参考。