我希望我的 Java 应用程序能够作为远程服务器的客户端。我可以为此使用 ORMLite 吗?文档中提到了spring框架。但是 a) 我不确定如何使用它,b) 我不确定它是否适用于此应用程序。
通过服务器连接我的意思是我想使用 DAO 从我的服务器上的数据库轮询和推送数据(我确信大多数客户端/服务器都是这样做的)。
<小时/> 编辑:回应格雷的后续行动。 <小时/>在进一步讨论我感到困惑的内容之前,我应该阐述我对交互类的作用的理解。
JDBCConnectionSource
是客户端(ConnectionSource 的发起者)和主机(无论是本地数据库还是基于服务器的数据库)之间的桥梁。
DAO
提供用于轻松创建 SQL 查询的工具的界面。
现在我仍然不完全理解的是 DAO
和 JdbcConnectionSource
与我的服务器的交互。应用程序DAO
是否生成完全“编译”的SQL语句并将其分派(dispatch)到应用程序ConnectionSource
以传输到主机?服务器在收到 SQL 请求后会正确地委托(delegate)它 - 处理请求、收集数据并返回它?
最佳答案
我不是 100% 确定你的意思,但这里有一些关于 ORMLite 的一般信息和远程处理。 ORMLite 当然可以联系服务器上的远程数据库。您所需要做的就是指定指向远程系统的 JDBC URL:
// you can change the database type, hostname, and the database name
String databaseUrl = "jdbc:mysql://host.name.j256.com/databaseName";
ConnectionSource connectionSource = new JdbcConnectionSource(databaseUrl);
...
您当然可以使用 Spring 来实现此目的,但这不是必需的。如果您打算使用某种 HTTP、RMI 或其他远程处理机制来联系服务器,那么您必须为此编写客户端/服务器包装器。除了 JDBC 提供的远程处理之外,ORMLite 不提供任何远程处理。
希望这有帮助。
<小时/>编辑:
JDBCConnectionSource
是使用 JDBC 的 ConnectionSource
接口(interface)的实现。与数据库对话。还有 AndroidConnectionSource
,它在 AndroidOS 下使用直接数据库调用。
令人震惊的是,ConnectionSource
是数据库连接的来源。您可以通过 looking at its javadocs 查看各种方法。最常用的方法是:
getReadOnlyConnection()
、getReadWriteConnection()
和 releaseConnection
。这本身并不进行任何远程处理。它允许 JDBC 对数据库服务器进行实际连接和远程处理,无论是本地还是远程。
Dao
接口(interface)提供了对数据库执行所有操作的工具。它使用 ConnectionSource
获取与数据库的连接,执行操作(插入、删除、更新、选择),然后释放数据库连接。
Now what I am still don't fully understand is the interaction of the DAO and the the JdbcConnectionSource with my server. Does the application DAO generate a fully "compiled" SQL statement and dispatch it to the application ConnectionSource for transmission to the host?
没有。 ORMLite 生成执行操作所需的 SQL,它从 ConnectionSource
获取到数据库的连接,它编译 SQL 并使用该连接设置任何参数,它使用该连接执行语句,它处理结果,然后释放连接。
关于java - ORMLite 可以与服务器一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12432988/