Importar y Exportar mysql con Java


Para exportar una base de datos desde Java necesitamos la aplicación "mysqldump" que viene instalado dentro de MySQL, solo necesitamos utilizarlo y pasar los parámetros requeridos. Esta aplicación tiene varios parámetros personalizables para poder exportar una o varias base de datos a la vez.

Para utilizarlo lo llamados de esta manera, usamos la linea de consola de Windows:

C:\\xampp\\mysql\\bin\\mysqldump --opt -uroot -pcontraseña -B basededatos -r C:\Users\David\Desktop\backus.sql

Primero hacemos la ruta donde esta mysqldump, luego ingresamos el usuario y la contraseña, luego el nombre de la base de datos y en -r va la ruta de salida.

Importar y Exportar mysql con Java


En este ejemplo estamos asumiendo que es localhost, pero podemos cambiar esto, si el host es diferente, de esta manera:

C:\\xampp\\mysql\\bin\\mysqldump --opt --host=localhost -uroot -pmika -B inventario -r C:\Users\David\Desktop\backus.sql

Por ejemplo para un servidor remoto exportar una base de datos de esta forma:

Importar y Exportar mysql con Java


Para Importar: Es más fácil solamente indicamos a MySQL el archivo que hemos exportado, este archivo debe tener el script SQL.

C:\\xampp\\mysql\\bin\\mysql -uroot -pcontraseña basededatos < C:\Users\David\Desktop\backus.sql

Importar y Exportar mysql con Java


En Java también podemos hacerlo, para ello necesitamos del método Runtime para ejecutar por consola las líneas de comandos, el siguiente código Java es para Exportar y Importar:



import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class Importar2 {
    
    private static void Exportar(){
        try {
            Process p = 
            Runtime.getRuntime().exec("C:\\xampp\\mysql\\bin\\mysqldump --opt -uroot -pcontraseña -B basededatos");

            InputStream is = p.getInputStream();
            FileOutputStream fos = new FileOutputStream("C:\\Users\\David\\Desktop\\backus.sql");
            byte[] buffer = new byte[1000];

            int leido = is.read(buffer);
            while (leido > 0) {
               fos.write(buffer, 0, leido);
               leido = is.read(buffer);
            }
            
            fos.close();
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    private static void restaurar() {
        try {
            Process p = 
            Runtime.getRuntime().exec("C:\\xampp\\mysql\\bin\\mysql -uroot -pcontraseña basededatos");

            OutputStream os = p.getOutputStream();
            FileInputStream fis = new FileInputStream("C:\\Users\\David\\Desktop\\backus.sql");
            byte[] buffer = new byte[1000];

            int leido = fis.read(buffer);
            while (leido > 0) {
               os.write(buffer, 0, leido);
               leido = fis.read(buffer);
            }

            os.flush();
            os.close();
            fis.close();
            
        }catch(Exception e){
            e.printStackTrace();
        }
}
    
    public static void main(String[]args){
        Importar2.Exportar();
        Importar2.restaurar();
    }
    
}





Comentarios

Publicar un comentario

Entradas populares de este blog

Convertir jar a ejecutable exe con Launch4j

Librería para cambiar apariencia ventana y frames Java

Component mscomctl.ocx or one of its dependencies not correctly registered