连接到远程数据库

时间:2010-02-15 05:59:13

标签: java database user-interface connection

通过互联网从java swing独立客户端应用程序连接到远程mysql服务器(数据库)的最佳架构是什么,而不使用中间服务器

4 个答案:

答案 0 :(得分:2)

您通常不希望将数据库直接暴露给互联网。恕我直言,你应该考虑在其间放置一个(网络或应用程序)服务器。但是,如果您想要或必须,您应该付出实际努力来保护它:非常强大的密码,对所有内容的非常严格的权限,使用SSL与客户端证书或甚至可能设置VPN ...然后这就不再是一个问题编程而不是配置和serverfault是获取更多信息的好地方。

我在Serverfault上发现了两个有趣的相关问题来处理这个问题(不过MySQL):

  1. The wisdom of exposing a database server on the internet?
  2. How to expose SQL 2008 database to the world through the Internet?
  3. 从架构的角度来看,即使是胖客户端,我也希望在其间使用SOAP或REST为客户端应用程序提供数据库功能的Web服务器。

答案 1 :(得分:1)

如果您想从独立的应用程序波动连接,那么JDBC最适合。

答案 2 :(得分:0)

JDBC将是最好的

try
{
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  String url = "jdbc:mysql://HOST/DATABASE";
  conn = DriverManager.getConnection(url, "username", "password");
  doTests();
  conn.close();
}

以下是要在不同数据库上使用的connectionstring的集合

http://devdaily.com/java/jdbc-connection-string-mysql-postgresql-sqlserver

答案 3 :(得分:0)

您一定要熟悉concurrency issues in Swing,以及SwingWorker和SwingUtitlies.invokeLater等构造(请参阅下面的链接)。从EventDispatchThread中进行远程调用会挂起您的GU​​I并为您的用户提供非常糟糕的体验。

http://java.sun.com/javase/7/docs/api/javax/swing/SwingUtilities.html#invokeLater%28java.lang.Runnable%29