Цитирование вашего кода:
// if user loads applet online
conn = DriverManager.getConnection("jdbc:mysql://localhost:4464/jsfdan_mystikdan", "jsfdan_muser", "test");
Апплет - это программа, работающая на компьютере пользователя, где находится браузер. Таким образом, localhost
относится к машине пользователя на этом этапе. Скорее всего, большинство пользователей не запускают MySQL на своих компьютерах, что даже если бы они были, это не был бы тот, за которым следовал ваш апплет, и что он все равно вышел бы из изолированной среды апплета.
РЕДАКТИРОВАТЬ (после обсуждения в комментариях):
Из обсуждений и комментариев в предыдущих связанных вопросах видно, что вы пытаетесь подключиться напрямую к своему серверу MySQL из приложения (апплета), распространяемого среди клиентов, которые могут быть где угодно, что обычно является неправильным подходом.
- Вы были обеспокоены размещением своего имени пользователя / пароля в своих примерах. Это лишь небольшая проблема по сравнению с тем, что могло бы случиться, если бы вы широко распространили свой апплет: тогда любой мог легко просмотреть трафик, отправленный вашим приложением на ваш сервер MySQL, и получить имя пользователя / пароль.
- Большинство серверов MySQL заблокированы от внешнего доступа, в основном из-за того, что они не обеспечивают надлежащего контроля доступа по сравнению с требованиями доступа всего приложения. Это не всегда так, но управление доступом к самим операциям INSERT / SELECT / UPDATE часто слишком грубое, чтобы представлять функциональное назначение всего приложения.
В большинстве служб, использующих базу данных, управление пользователями и контроль доступа осуществляется на уровне приложений, а не на уровне базы данных. Это особенно верно, когда вы используете поставщика общего доступа, который создает базу данных и учетную запись пользователя для всего приложения, даже если вам нужно несколько пользователей.
Типичным обходным путем для этого является разработка другой службы (обычно веб-службы), которую будет вызывать ваш клиент, предоставляя подходящий контекст аутентификации и использования для различных операций, которые вы хотите, чтобы клиент выполнял с данными.
Я не уверен, что ваш хостинг позволяет вам запускать сервисы Java, но более дешевые провайдеры хостинга, как правило, позволяют вам запускать сервисы PHP, Perl и / или Python, поэтому вы можете написать сервис на одном из этих языков и иметь свой Апплет будет клиентом, который с ними разговаривает.
Объяснение того, как писать веб-сервисы, вероятно, выходит за рамки этого вопроса / ответа. В общем, вы, вероятно, встретите 3 категории: веб-сервисы в стиле REST (это архитектурный стиль, управляемый понятием ресурсов и представлений), XML-RPC (часто называемый «REST» по ошибке, куда вы отправляете фрагменты XML для некоторой веб-страницы, которая будет вызывать функцию / метод и давать вам некоторые результаты в ответ; вы можете сделать то же самое с JSON) и SOAP (где вы, вероятно, получите больше инструментов, но также можете быть более раздутыми в зависимости от того, что вам удобно). Были продолжающиеся дебаты о том, что лучше, но это зависит от вас, чтобы исследовать и выбрать то, что вы считаете лучшим для вашего приложения. Вероятно, это будет зависеть от того, что можно развернуть на вашем хосте.