подключение к удаленной базе данных - PullRequest
1 голос
/ 15 февраля 2010

Какова лучшая архитектура для подключения к удаленному mysqlserver (базе данных) из автономного клиентского приложения java swing через Интернет без использования промежуточного сервера

Ответы [ 4 ]

2 голосов
/ 15 февраля 2010

Как правило, вы не хотите выставлять свою базу данных напрямую в Интернет. ИМХО, вам стоит подумать о том, чтобы поставить сервер (веб или приложение) между ними. Если вы хотите или должны, однако, вам следует приложить реальные усилия для его защиты: очень надежные пароли, очень ограниченные разрешения на все, использование SSL с клиентскими сертификатами или, возможно, даже настройку VPN ... Тогда это становится меньше вопросом программирование, а не конфигурация, и ошибка сервера - хорошее место для получения дополнительной информации.

Я нашел два интересных связанных вопроса о Serverfault, которые касаются этой проблемы (но не MySQL):

  1. Мудрость разоблачения сервера базы данных в Интернете?
  2. Как представить миру базу данных SQL 2008 через Интернет?

С точки зрения архитектуры, даже с толстым клиентом, я бы предпочел иметь промежуточный веб-сервер, который использует SOAP или REST для обеспечения функциональности базы данных для клиентского приложения.

1 голос
/ 15 февраля 2010

Если вы хотите подключиться из отдельных приложений, то JDBC лучше всего подходит.

0 голосов
/ 15 февраля 2010

Вы обязательно захотите ознакомиться с проблемами параллелизма в Swing , а также с такими конструкциями, как SwingWorker и SwingUtitlies.invokeLater (см. Ссылку ниже).Выполнение удаленных вызовов из EventDispatchThread приведет к зависанию вашего графического интерфейса и предоставит очень плохой опыт вашим пользователям.

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

0 голосов
/ 15 февраля 2010

JDBC будет лучшим

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

Вот коллекция строк соединений для использования в разных базах данных

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...