GWT y Base de Datos


Dentro de una de las materias que llevo en la UTPL, estamos analizando GWT como alternativa para el desarrollo de aplicaciones AJAX. Dentro de éste marco preparé unas clases en donde se muestra cómo se puede interactuar con un servidor Web y a su vez con su servidor de base de datos.

Se mostró el uso de GWT-RPC y servlets, la primera de las opciones tal vez la más compleja (por el manejo de interfaces y clases) mientras que la segunda con el problema de comunicar los resultados (éxito o error) con el trabajo de la base de datos. Obviamente ambos superables.

Se utilizó como base de datos Derby DB que viene configurada para el trabajo con NetBeans y que por razones didácticos es más que suficiente.

Para la GUI, la base es GWT, pero extendida con las características GWT-Ext, configuradas como señalé en un post anterior. Personalmente creo que GWT-Ext colabora enormemente en el desarrollo rápido de éste tipo de aplicaciones.

Les comparto los links en donde pueden descargar el proyecto completo y las librerías que se necesitan así como también algunos archivos de configuración (gwtext.jar, derbyclient.jar), el script e la base de datos.

Proyecto.

Archivo adicionales.

17 comentarios en “GWT y Base de Datos

  1. Manuel dijo:

    Hola,
    Estoy haciendo trabajos con GWT, y estoy interesado en ver como hacer los envios via RPC, los hice a partir de un ejemplo que encontre en la red, el tuyo lo estoy revisando, pero no puedo cargarlo en eclipse, porque me pide el nombre del proyecto, como lo hago? es que como soy nuevo en esto hay algunas cosas q no manejo todavia, gracias.

    ademas, estoy viendo como hacer para declarar las clases para ingresar palabras con “acento”, o sea, en castellano.

    saludos, espero me puedas ayudar

  2. Hola Manuel

    No lo puedes abrir en Eclipse, porque lo he desarrollado en NetBeans, pero busca el código fuente dentro de la carpeta src y verás ahí cómo funciona el RPC fíjate en todo lo que inicia con LoginService que es lo que se utiliza para enviar los parámetros.

    Y no entiendo el porqué necesitas alguna clase para ingresar palabras con acento, si lo explicas un poco más te podré ayudar.

    Saludos

  3. Manuel dijo:

    Chévere,
    Gracias por tu ayuda, en el caso de los acentos, cuando agrego un “button” o “label” con acentos, tengo q formatear la página java como UTF-8; aún así, estuve buscando una mejor manera de programar, y buscando en GWT está el apartado de “internacionalización”, en ésta se habla de crear una clase que hará las veces de receptora de metodos que llamarán a un archivo plano que contenga el listado de palabras y/o frases necesarias que estén con acento, de esta manera:

    VariablesMantenedores.java

    public interface VariablesMantenedores extends Constants{
    String descripcion();

    }

    VariablesMantenedores.properties
    descripcion = descripción

    Mi comentario es: que tan necesario es utilizar esta clase “variables” para utilizarla en GWT?

  4. Fer dijo:

    Y como conecto una base de datos teniendo una interfaz GWT? Deseo enviar un formulario hecho en GWT y como realizo esta operacion?, he leido algo de JSON, pero esto es nuevo para mi. Debo aclarar que tambien soy novato en GWT pero que entiendo algo de java, de alli a que no este perdido del todo.

  5. Cristian dijo:

    Buenas Tardes Jorge, he visto algo de tu blog y esta muy interesante todo, apenas estoy iniciando en esto del gwt y me parece muy interesante pero tengo algunas dudas, te agredesco que por favor me colabores.
    1. La única manera de comunicación entre el cliente GWT y el servidor que se comunica con la bd se hace con RPC?.

    Si el servidor esta programado con java como se envia la informacion entre las capas? , con JSON o hay otra alternativa como enviar OBJETOS..

    • Hola Cristian,

      Te comento algo de lo que preguntas:
      1. Si el único mecanismo de comunicación entre el cliente GWT y el servidor es a través de RPC. Creo, no estoy muy seguro, que implementaciones como SmartGWT o GWT-ext tienen algún otro mecanismo como invocación a un servicio web SOAP.

      2. Para enviar información entre las capas tu necesitas de un punto de entrada una fachada (facade) que procese la información que recibe del cliente y la envié a las capas. Existen 2 formas de intercambiar información entre cliente y servidor y viceversa. La primera es a través de Objetos o colecciones de Objetos, para esto tú objeto debe implementar la interface ISerializable (propia de GWT) y la comunicación Servidor Cliente puede hacerse a través del intercambio de JSON.

      Creo que con esto respondo a tus preguntas. Si tienes dudas trataré de despejarlas en la medida de mis conocimientos.

  6. Cristian dijo:

    Hola Jorge.

    Muchas gracias por tu pronta y oportuna respuesta.

    Voy a probar con los objetos implementando la interface ISerializable pues es mas familiar para mi que con JSON.

    Nuevamente t agradezco y espero que si me surgen nuevas dudas me puedas colaborar.

  7. sanro dijo:

    Hola,

    Estoy haciendo un formulario web con Eclipse, que envia los resultados introducidos por el cliente a una dirección de email. Hasta aquí todo correcto. El problema es cuando quiero guardar los datos en una base de datos SQLite.

    Lo he implementado en el lado servidor y en la linea Class.forName(“org.sqlite.JDBC”) provoca una excepcción de ClassNotFound, pero si que tengo cargada la libreria en la ClassPath del proyecto, igual que la libreria mail.jar con la que envio el correo.

    Sabes que puede estar fallando en Class.forName(“org.sqlite.JDBC”) ?

    Gracias y un Saludo,

  8. Buenas noches estaba trabajando hace mucho tiempo con GWT y me di cuenta que en Netbeans hay una herramienta muy útil para hacer la interfaz gráfica JBuilder cosa que en eclipse no hay una herramienta para crearlo sino que se tiene que realizar en codigo html…ademas cuando voy a visualizarlo no se porque se demora tanto. Otra cosa, ademas de que no me deja utilizar esta interfaz conectandola a la base de datos SQlite porque me genera un error diciendo que no se puede conectar a la base de datos …Class.forName(“org.sqlite.JDBC”)
    Gracias por su colaboración

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s