Foros del Web » Programación para mayores de 30 ;) » Java »

Crear paquete instalacion de aplicacion java + mysql

Estas en el tema de Crear paquete instalacion de aplicacion java + mysql en el foro de Java en Foros del Web. Buenas, mi consulta es la siguiente. Tengo una aplicacion en java la cual utiliza una base de datos mysql en la misma maquina (localhost). el ...
  #1 (permalink)  
Antiguo 27/06/2012, 14:51
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
Sonrisa Crear paquete instalacion de aplicacion java + mysql

Buenas, mi consulta es la siguiente.
Tengo una aplicacion en java la cual utiliza una base de datos mysql en la misma maquina (localhost).
el tema es que necesito crear un paquete de instalacion que me instale la aplicacion y el servidor de sql con la base de datos todo en la misma maquina, todo de una vez para que con solo instalarlo ya salga todo andando.
alguien tiene informacion de esto porque no encuentro nada.
Gracias.
__________________
Solitary wolf..[email protected]
  #2 (permalink)  
Antiguo 27/06/2012, 15:46
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Crear paquete instalacion de aplicacion java + mysql

Hola:

Tendrías que hacerlo. Lo más sencillo un zip con tu aplicación y el instalador de mysql y un pequeño fichero .bat que arranque el instalador de mysql y luego tu aplicación java. La instalación consistiría en desempaquetar el zip y darle al .bat

De todas formas, no es lo habitual. Una aplicación java normalmente se suele dejar configurar para cualquier base de datos que tenga el cliente instalada (oracle, mysql, postgresql, etc, etc), por lo que una aplicación java (o en cualquier lenguaje) casi nunca llevan un instalador de una base de datos concreta ni obliga al usuario a instalarla.

Para un arranque rápido y sin necesidad de instalar o configurar una base de datos ya existente, lo normal es que la aplicación java lleve una base de datos embebida en java (hsqldb, apache derby, h2, etc). Estas bases de datos son sólo un jar más de java quie no necesita instalación y que tu propia aplicación puede arrancar y configurar. En cualquier caso, estas bases de datos son buenas para un arranque rápido de prueba de la aplicación, la aplicación java debería dejarse configurar para una base de datos en serio elección del cliente.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 28/06/2012, 04:41
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Crear paquete instalacion de aplicacion java + mysql

chuidiang
Cita:
Una aplicación java normalmente se suele dejar configurar para cualquier base de datos que tenga el cliente instalada (oracle, mysql, postgresql, etc, etc),
Según esto, la app debería incluir los JDBC de todas las db (incluso los "etc, etc")?, a menos que incluyas una manual para que el cliente re compile el soft con el Driver de la "base de datos elegida" y así incluir esta en el MANIFEST.
Jamás vi/conocí una aplicación con semejante flexibilidad (si podés poner algunos links de ejemplos estaría buenisimo), compatibilidad en tipos de datos de las diferentes DDBB, functions, triggers, tipo de datos auto incrementables (SERIAL, SEQUENCES, AUTO_INCREMENT), mucho menos si usas algún ORM y JPA, cuya forma de trabajo está muy ligada a la base de datos elegida.
Creo que estás exagerando al decir que una app Java (ya sea SE o EE) "deje configurar" para cualquier DB.
__________________
BadProgrammerException!
  #4 (permalink)  
Antiguo 28/06/2012, 06:37
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Crear paquete instalacion de aplicacion java + mysql

Hola:

Efectivamente, todo el tema de compatibilidad que comentas es un problema y no es tan sencillo como yo lo indico (salvo que sea una aplicación no muy compleja).

No entiendo lo que dices de que ORM y JPA están muy orientados a la base de datos elegida. De hecho, una de las grandes ventajas de estos mecanismos es independizarte de la base de datos. Eso sí, hay que tratar de usarlos de una forma genérica que sirva para cualquier base de datos (salvo que se quiera algo muy específico y no quede más remedio). Por ejemplo, en hibernate puedes poner que la forma de generar los id de una tabla sea "native" y vale para cualquier base de datos. Evidentemente, hibernate soporta que le pongas "sequence", pero entonces estas perdiendo esa independencia, mientras que "native" generará automáticamente la "sequence" si la base de datos la soporta, o "auto-increment" o lo que sea.

Tampoco usar SQLs sino que es mejor usar el lenguaje HQL o el del ORM que sea, que hibernate o el ORM que sea se encargará de traducir al dialecto SQL específico de la base de datos.

Aun así, a veces es necesario hacer cosas específicas para cada base de datos (tirggers o crear funciones por ejemplo) y en ese caso tu aplicación sólo soportará aquellas bases de datos para las que se ha pensado. Suelen tener scripts que hacen esas tareas específicas (normalmente de creación de tablas/triggers/procedures) y no se usan para nada en tiempo de ejecución.

No es necesario recompilar nada. La aplicación va con el driver de la base de datos que se elija por defecto (e incluso puede llevar adicionalmente los de las bases de datos más conocidas) y se le dice al usuario que se baje el driver de la base de datos que quiera (un jar) y lo ponga en el classpath (habitualmente un directorio concreto), además de tocar en algún fichero de configuración una propiedad que indica el nombre de la clase del driver (además de usuario, password y database). Una vez hecho esto, sólo tiene que arrancar la aplicación.

sonar es una herramienta para mostrar métricas de código java, viene con apachederby embebido y soporta cuatro base de datos más http://docs.codehaus.org/display/SONAR/Requirements

Liferay es una especie de portal web que te permite añadir tu propio contenido. Viene por defecto con HSQL, pero permite otras bases de datos http://www.liferay.com/community/wik...+Configuration Eso sí, lleva sus propios scripts de creación de tablas, supongo que no admitirá todos los tipos.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 28/06/2012 a las 06:45
  #5 (permalink)  
Antiguo 29/06/2012, 17:46
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
Respuesta: Crear paquete instalacion de aplicacion java + mysql

hola amigos gracias por sus comentarios, lo que me falto agregar es que ya cambie mi base de datos a un embebida como dijo chuindiang, lo hice con un H2, y todo va de maravilla, ahora me tope con un problemilla; no se como hacer reportes con esta base de datos incrustada, si hubiera alguna sugerencia al respecto se los agradeceria...
__________________
Solitary wolf..[email protected]
  #6 (permalink)  
Antiguo 29/06/2012, 22:54
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Crear paquete instalacion de aplicacion java + mysql

¿Cómo los hacias con MySQL?
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 30/06/2012, 12:07
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
Respuesta: Crear paquete instalacion de aplicacion java + mysql

bueno, el reporte lo craba desde el wizard del ireport, esojo el origen de datos, una conexion jdbc, aqui viene el problema cuando lo quiero hacer con el h2, no veo una opcion para conectarme a esa base de datos, buen despues para enlazar mi formulario al reporte tengo esta clase.

Código:
public class Reporte {
    private Connection cnn=null;
    public Reporte()
    {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            cnn=DriverManager.getConnection("jdbc:mysql://localhost/ejemplo",
                    "root","2311046");
        } catch (ClassNotFoundException | SQLException e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    public void Mostrar()
    {
        try {
            JasperReport masterReport;
            masterReport=(JasperReport)JRLoader.loadObject(System.getProperty(
                    "user.dir")+"\\reporte1.jasper");
            Map parametro=new HashMap();
            JasperPrint jasperprint=JasperFillManager.fillReport(
                    masterReport, parametro,cnn);
            JasperViewer view=new JasperViewer(jasperprint,false);
            view.setTitle("Mi primer reporte..");
            view.setVisible(true);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    
}
como lo hago con h2, no tengo idea..
__________________
Solitary wolf..[email protected]
  #8 (permalink)  
Antiguo 30/06/2012, 12:08
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
Respuesta: Crear paquete instalacion de aplicacion java + mysql

Cita:
Iniciado por lincolnf_2 Ver Mensaje
bueno, el reporte lo craba desde el wizard del ireport, esojo el origen de datos, una conexion jdbc, aqui viene el problema cuando lo quiero hacer con el h2, no veo una opcion para conectarme a esa base de datos, buen despues para enlazar mi formulario al reporte tengo esta clase.

Código:
public class Reporte {
    private Connection cnn=null;
    public Reporte()
    {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            cnn=DriverManager.getConnection("jdbc:mysql://localhost/ejemplo",
                    "root","2311046");
        } catch (ClassNotFoundException | SQLException e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    public void Mostrar()
    {
        try {
            JasperReport masterReport;
            masterReport=(JasperReport)JRLoader.loadObject(System.getProperty(
                    "user.dir")+"\\reporte1.jasper");
            Map parametro=new HashMap();
            JasperPrint jasperprint=JasperFillManager.fillReport(
                    masterReport, parametro,cnn);
            JasperViewer view=new JasperViewer(jasperprint,false);
            view.setTitle("Mi primer reporte..");
            view.setVisible(true);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    
}
como lo hago con h2, no tengo idea..
__________________
Solitary wolf..[email protected]
  #9 (permalink)  
Antiguo 03/07/2012, 12:38
 
Fecha de Ingreso: abril-2011
Ubicación: lima
Mensajes: 134
Antigüedad: 13 años
Puntos: 3
Respuesta: Crear paquete instalacion de aplicacion java + mysql

hola amigos, bueno ya me canse de buscar por el internet y no encontrar nada beuno con respecto a este temsa, bueno de todas maneras gracias por sus comentarios..
__________________
Solitary wolf..[email protected]

Etiquetas: mysql, paquete, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:23.