Java桌面应用程序加数据库加互联网

时间:2010-12-10 21:01:54

标签: java sql database

我必须用几个表编写小型java数据库应用程序。 有了这些我有一些经验,可以做到这一点。 那将在一台机器上。

从网络的某个地方,从其他机器,它必须能够连接并检查SWING GUI中的一些数据库查询。 那个网络部分是我没有经验的。什么是完成这项任务的最佳方法? 我需要一些一般的指示,也许还有一些很好的链接,可以用来研究。 问题是我有点时间在这里。

从我的浏览中我看到最简单的解决方案是使用ip:port方式直接从远程计算机直接连接JDBC。喜欢111.111.111.111:55 但这让DB真的不安全。

我读过关于套接字的内容,但我不知道这有多大帮助。

现在,我已经看到人们提到Hibernate和VPN,但我认为这是很多工作。 还有其他人提到了网络服务器,但我绝对不知道它是如何工作的。

那么,你的意见中最佳解决方案是什么? 想法,建议,指导方针?

先谢谢,马丁。

4 个答案:

答案 0 :(得分:2)

JDBC驱动程序的数据源可能有不同的参数,具体取决于您是否对连接使用加密。

例如,MySQL允许您使用SSL连接,甚至在其手册中也有section。其他数据库可能会有所不同。

据推测,您的应用程序也将拥有自己的用户名和密码,以便发送到远程数据库服务器。

答案 1 :(得分:2)

使用数据库登录名和密码将提供某种程度的安全性。如果您的时间不够,那么Web服务或套接字将无法快速获取。除非你真的需要安全性,否则现在就使用JDBC。

答案 2 :(得分:1)

您可能希望编写Web服务来公开数据,而不是让用户通过Internet直接连接到数据库。理想情况下,Web服务位于数据库的物理分离机器上,因此数据库不会直接暴露给Internet。

人< - >互联网< - >网络服务< - >数据库

这实际上取决于您认为最佳的内容。

您对安全性没有任何顾虑吗?

如果您将数据库直接暴露在互联网上,您将不得不在防火墙/等上打开端口并保护您的数据库,并祈祷您没有其他不安全的服务暴露在互联网上。

答案 3 :(得分:1)

您有几种选择。

  • RMI这允许在一个Java虚拟机中运行的对象调用另一个Java虚拟机中运行的对象的方法。
  • CORBA公共对象请求代理体系结构,是分布式对象系统的标准体系结构。它允许分布式的异构对象集合进行互操作。
  • Sockets
  • HTTP服务器。您可以使用Servlet或某些框架(如Struts,Spring等)作为服务器端,并使用Apache HttpClient
  • 从客户端调用servlet

由于您没有太多时间我会丢弃RMI和CORBA,并专注于套接字或http服务器解决方案。

由于您写道,您没有使用Web应用程序的经验,我会使用套接字。

使用java,您可以使用套接字创建服务器和客户端here是一个基本示例,而Here是一个使用Swing的非常好的教程。

相关问题