0

我希望我的 java 应用程序客户端连接到我的远程服务器。我可以为此使用 ORMLite 吗?该文档提到了spring框架。但是a)我不确定如何使用它,b)我不确定它是否适用于这个应用程序。

通过服务器连接我的意思是我想使用 DAO 从我的服务器上的数据库中轮询和推送数据(我确信大多数客户端/服务器都会这样做)。 在此处输入图像描述


编辑:回应格雷的跟进。


在进一步讨论我的困惑之前,我应该说明我对交互类所做的事情的理解。

JDBC连接源

是客户端(ConnectionSource 的发起者)和主机(无论是本地数据库还是基于服务器)之间的桥梁。

提供用于轻松创建 SQL 查询的工具的界面。

现在我仍然不完全理解的是DAOJdbcConnectionSource我的服务器的交互。应用程序是否DAO生成完全“编译”的 SQL 语句并将其分派给应用程序ConnectionSource以传输到主机?然后服务器在收到 SQL 请求后会正确委派它 - 处理请求,收集数据并返回它?

4

1 回答 1

2

我不是 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 不提供任何远程处理。

希望这可以帮助。


编辑:

JDBCConnectionSourceConnectionSource使用JDBC与数据库对话的接口的实现。还有一个AndroidConnectionSource在 AndroidOS 下使用直接数据库调用。

令人震惊的ConnectionSource是,它是数据库连接的来源。您可以通过查看其 javadocs来了解各种方法。最常用的方法是: getReadOnlyConnection()getReadWriteConnection()releaseConnection。这本身不会做任何远程处理。它允许 JDBC 执行与数据库服务器的实际连接和远程处理,无论是本地还是远程。

Dao界面提供了对数据库执行所有操作的工具。它使用ConnectionSource获取到数据库的连接,执行操作(插入、删除、更新、选择),然后释放数据库连接。

现在我仍然不完全理解的是 DAO 和 JdbcConnectionSource 与我的服务器的交互。应用程序 DAO 是否生成完全“编译”的 SQL 语句并将其分派给应用程序 ConnectionSource 以传输到主机?

不会。ORMLite 生成执行操作所必需的 SQL,它从 获取到数据库的连接ConnectionSource,它编译 SQL 并使用连接设置任何参数,它使用连接执行语句,处理结果,然后释放连接。

于 2012-09-15T12:10:33.943 回答