conexion entre app desktop y bd online

Iniciado por kerbero79, 26 Marzo 2015, 18:18 PM

0 Miembros y 1 Visitante están viendo este tema.

kerbero79

buenas tardes quisiera saber como hago o a traves de que metodo puedo yo que una aplicacion echa en netbeans de escritorio se pueda conectar con una base de datos alojada en mi hosting de internet para que asi yo llenar la data desde la aplicacion de escritorio y entonces en la web puedan hacer consultas sobre esa data?

muchas gracias de ante mano les agradezco la ayudita

Usuario Invitado

Hazlo como si te conectaras a tu bbdd local. Lo único que tienes que cambiar es la url, por ejemplo:

jdbc:mysql://148.244.24.178:3306/tu_bbdd

Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

kerbero79

#2
bueno le comunique a los de soporte tecnico del hosting que tengo y me indican que como es un hosting virtual que esta en un servidor fisico donde hay varios servidores virtuales de otros clientes entonces entonces permitir ese tipo de conexiones entr las aplicaciones locales con las bases de datos online ocacionario una carga constante y daria problemas porque disminuiria la estabilidad del servidor.

habria otra forma de comunicar la bs online con el java local? o existen paginas de alojamiento de bases de datos que si permitan esto de forma gratis el alojamiento de la base de datos?

Usuario Invitado

#3
Desconozco si hay hosting para BBDD solamente, por lo que no podría recomendarte uno. Veo otra alternativa, que es crear una API REST. Primero que todo:

¿Tu hosting tiene soporte para servidores de aplicaciones Java? Por ejemplo, Tomcat, GlassFish, WildFly, JBoss, etc.

Si la respuesta es sí, puedes crear una API REST. Ésto es, levantas tu servidor de aplicaciones Java con un serivicio RESTful. Un servicio RESTful escucha por URL, ésto es, cuando se acceda a determinada URL, el RESTful detecterá dicha petición y hará lo que tenga que hacer.

Por ejemplo:

Código (java) [Seleccionar]
@Path("/products")
@Stateless
public class ProductService {

   @PersistenceContext
   private EntityManager em; // Inyecta la dependencia de EntityManager
   
   @POST
   @Path("/insert")
   @consumes(MediaType.APPLICATION_JSON)
   public void insert(JSONObject product) {
       EntityTransaction tx = em.getTransaction();
       tx.begin();
       ProductVO p = new ProductVO();
       p.setId(product.get("id"));
       p.setName(product.get("name"));
       p.setDescription(product.get("description"));
       p.setPrice(product.get("price"));
       em.save(p);
       tx.commit();
   }
   
   // otras URLs...
   
}



  • @POST: Indica que la llamada deberá ser escuchada por tipo POST.
  • @Consumes(MediaType.APPLICATION_JSON): Indica que se consumirá un objeto JSON.

Recibe el objeto JSON enviado desde tu aplicación de escritorio y lo guarda en la BBDD por medio de JPA. En el ejemplo usé JPA, pero se puede hacer con código SQL ordinario.

Desde el cliente, para guardar datos:

Código (java) [Seleccionar]
ClientConfig config = new DefaultClientConfig();
 Client client = Client.create(config);
 client.addFilter(new LoggingFilter());
 WebResource service = client.resource(getBaseURI());
 // Crea el JSON a enviar
 JSONObject inputJsonObj = new JSONObject();
 inputJsonObj.put("id", new Short("1"));
 inputJsonObj.put("name", "Shampoo"));
 inputJsonObj.put("description", "Shampoo control anti caspa");
 inputJsonObj.put("price", new BigDecimal("24.90"));
 // Aquí es donde se llama a "/api/products/insert" y se envía el JSONObject para poder guardarlo en la BBDD
 System.out.println(service.path("api").path("products").path("insert").accept(MediaType.APPLICATION_JSON).post(JSONObject.class, inputJsonObj));



No será tan fácil de implementar, pero se adapta a lo que requieres.


Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein