una java desktop application se puede conectar a una Base de datos MySQL ubicada en un servidor de páginas web?

antes que nada muchos saludos.

Estoy desarrollando mi primer Java Desktop Application, logicamente el desarrollo lo hago en mi computadora con un servidor apache instalado y MySQL como manejador de DB, sé que puedo instalar la base de datos en un servidor web de un sitio que contrato la empresa para la que estoy desarrollando la Aplicacion, la pregunta es:
una vez instalada la base de datos en el servidor y habiendo copiado el jar en el sitio web, ésta aplicación puede ser ejecutada desde cualquier computadora conectada a internet y accesar a la base de datos del servidor?

muchas gracias de antemano por cualquier ayuda

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de genitalico

que tal amigo amigo loq

que tal amigo amigo loq dices es posible pero a medias y ay algo q no me qedo claro pero aqui va sugerencia..

si preguntas por si tu aplicacion se puede conectar a la BD ps aqui hace unos dias hice un post para preguntar lo mismo.. me supongo q as d saber manejar los servidores, si tienes acceso al servidor via consola o via panel web noc ya dependera.. loq tienes q hacer es primero crear la bd algo obvio y despues el usuario que usara la BD, noc q te pediran en la empresa para laq haces la aplicacion pero con esto de los usuarios para la bd ay q tener cuidado podrias crear un usuario administrador q le asignaras todos los permisos hacia la base de datos crear tablas editar borrar consultar etc..
otro usuario q solo consulte,
algun otro q solo pueda editar ciertas tablas no todas
cmo dije ya depende, digamos q vendes algo con la BD
nada tiene q hacer una cajera borrando articulos del inventario pero si q deberia tener permisos para editar una tabla digamos de ventas, permisos de solo consultas de inventario, aunq claro eso se puede maquillar haciendo los formularios especificos con los botones especificos paraq no le metan mano de mas a la BD pero no seria lo mas apropiado..

la otra cuestion q no entendi bien es.. subir tu aplicacion .jar paraq pueda ser ejecutada desde el server.. eso no podras hacer.. la aplicacion .jar es para escritorio digamoslo asi lo.. digo porq dices q estas haciendo tu Java Desktop Application ..me imagino q usas net beans xD
en este caso una posible solucion esq armes una pequeña web y en lugar de una aplicacion para PC hagas un applet. aunq no seria lo mas indicado..
creoq para tu caso deberias usar JSP noc si estoy equivocado q alguien me corrija
en todo caso si tu programa sera para Desktop no necesariamente la empresa debe de contratar un hsoting con solo la Bd basta

si kieres la via web ps a empezar a diseñar tu soft de nuevo posible solucion usa php xD lol

Imagen de ezamudio

seguridad

Técnicamente es posible que tu servidor de base de datos acepte conexiones de aplicaciones de escritorio. Pero si lo vas a hacer a través de internet, es bastante inseguro porque estás exponiendo tu servidor y si alguien lo encuentra puede estar intentando conectarse hasta lograrlo (o tirar tu server). Además que por la latencia de la red puede que no sea la mejor idea, porque si tu app hace una consulta que devuelva muchos resultados, la transmisión puede tomar bastante tiempo.

Para tener algo de seguridad en ese esquema, revisa si tu servidor de base de datos puede manejar conexiones SSL, o de preferencia NO abras tu servidor a internet, mejor que los que quieran usar la app de escritorio primero armen una VPN con el servidor y luego ya se corren su app de escritorio y se conectan a la base de datos via VPN.

Pero lo mejor que podrías hacer es exponer solamente las funciones que necesita la app de escritorio, en una app web (via web service o REST o algo así). De esa manera la base de datos sigue protegida y mientras diseñes buena seguridad para los servicios expuestos, vas a tener menos problemas (porque en caso que alguien logre invocarlos como usuario autorizado, sólo podrá realizar las acciones que están publicadas, no podrá por ejemplo hacer un "DROP TABLE").

Imagen de bferro

La base de datos!= el servidor de páginas Web

Primero debes distinguir entre el servidor de páginas Web y la base de datos. Son servicios diferentes y por supuesto pueden estar "instalados" en el mismo host ,y tanto las aplicaciones que usas mediante HTTP, como cualquier otra aplicación en cualquier otro host se pueden conectar y usar a MYSQL, siempre y cuando cumplan con lo que una aplicación debe tener para conectarse con la base de datos.
Al instalar MySQL o después de haber sido instalado hay que configurarlo para que acepte conexiones desde máquinas remotas. Si la aplicación de desktop que quieres hacer es en Java, seguramente utilizarás JDBC. Es lo estándar, aunque puedes coenctarte por otras vías que se usan desde hace mucho tiempo para la conexión con bases de datos.
Lo importante aquí es que distingas claramente que un servidor de Web es un servicio de red distinto al servicio de red que ofrecen las bases de datos.
Saludos,
Ferro.

sobre la diferencia entre el servidor de DB y el servidor web

gracias por la ayuda, entendiendo la diferencia, mi cliente contrato un servicio de hosting en el que incluye servicios WEB y le permite crear bases de datos Mysql, entonces tengo los dos servicios, y ya arme la BD en Mysql e hice la applicacion java, entonces que me recomiendas para que la aplicacion sea mas rápida, pedir que habiliten el acceso remoto y usar esta java desktop application, o es mas recomendable hacer una java web aplicaction? gracias de nuevo

Imagen de Lestat

Analiza tu problema

Primero tienes que analizar cuale s el problema y los recursos con que cuentas , como ya comentaban mas arriba no es optimo acceder a una BD via web ya que expones la seguridad de tu plicacion ademas de que es mas lento.Ahora bien dices que tu cliente ya contrato un hosting, el cual supongo es la tipica combinacion Apache+PHP+MySql , asi que si este es el caso para que andas perdiendo el tiempo haciendo una aplicacion stanalone en Java , si podrias aprovechar lo que te ofrece el hosting? Yo haria una aplicacion php que se conecte a base de datos , ahora bien si tu hosting te esta proveyendo aparte del contenedor web un contenedor de JSP y Servllets(como Jetty o Tomcat) pues has una Java web Aplication .Por otra parte debes analizar para que se va a utilizar tu aplicacion"!!!! , si por ejemplo esta manejara informacion sensible o de importanjcia para tu cliente , no seria muy optimo montarla en un hosting, aunque si se puede pero deberias diseñar un control de acceso .En fin primero parate a planificar tomando en cuenta los recursos que tienes , el tipo de informacion que manejara la aplciacion y la finalidad de la misma , y decide!!!