Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/01/2011, 15:39
Avatar de valdo_kof
valdo_kof
 
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años, 2 meses
Puntos: 16
Respuesta: script para hacer backup de base de datos mysql

tambien tengo uno para poder restaurar la base de datos con jsp y beans, y tambien el mismo metodo puede servir para aplicacioines java si a alguien le sirve aqui se los dejo

solo den las gracias por lo menos

pagina jsp donde se busca el archivo .sql donde se encuentra la base de datos de mysql

Código HTML:
Ver original
  1.     <head>
  2.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3.         <title>JSP Page</title>
  4.         <style type="text/css">
  5. <!--
  6. body,td,th {
  7.     color: #FFFFFF;
  8.     font-weight: bold;
  9.     font-size: 12px;
  10. }
  11. body {
  12.     background-image: url(images/img.jpg);
  13. }
  14. -->
  15.     </head>
  16.     <body> <form name="form1" method="post" action="restaurar_bd.jsp">
  17.     <div align="center">
  18.       <p><img src="images/Imagen HIX_ok.png" width="273" height="55">      </p>
  19.              <label>Buscar Base de Datos
  20.           <input type="file" name="file">
  21.         </label>    
  22.         <p><button type="submit" style="border:none; background-color:transparent;" id="btt" alt="Modificar Registro"><span style="border:none; background-color:transparent;"><img src="images/database_48.png" width="48" height="48"></span></button></p>
  23.       <p>Restaurar Base de Datos </p>
  24.       </div> </form>
  25.     </body>
  26. </html>

pagina jsp donde mandamos llamar el bean y mandamos aviso de error o de aviso de operacion exitosa


Código HTML:
Ver original
  1. <%@ page language="java" import="java.util.* , java.sql.*, abrir_aplicacion.restaurar" pageEncoding="ISO-8859-1"%>
  2. <jsp:useBean id="restaurar" class="abrir_aplicacion.restaurar" scope="page">
  3. <jsp:setProperty name="restaurar" property="*"></jsp:setProperty>
  4. </jsp:useBean>
  5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  6.   "http://www.w3.org/TR/html4/loose.dtd">
  7.     <head>
  8.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  9.         <title>JSP Page</title>
  10.         <link rel="stylesheet" href="global.css" type="text/css" media="all" />
  11. <script src="mootools.js" type="text/javascript"></script>
  12. <link rel="stylesheet" href="sexyalertbox.css" type="text/css" media="all" />
  13. <script src="sexyalertbox.packed.js" type="text/javascript"></script>
  14.     </head>
  15.     <body>
  16.      <%
  17.      String file=request.getParameter("file");
  18.          System.out.println(file);
  19.      if(!file.equals("")){
  20.      restaurar.RecuperarBackup(file);
  21.        if(restaurar.resp()==true){
  22.      %>
  23.                 <script type="text/javascript">
  24.             window.addEvent('domready', function() {
  25.     Sexy = new SexyAlertBox();
  26. Sexy.alert('<h1>&nbsp;&nbsp;&nbsp;&nbsp;Retauraci&oacute;n Exitosa!!!</h1><p> &nbsp;&nbsp;&nbsp;&nbsp;Restuaraci&oacute;n Exitosa:</p><p>&nbsp;&nbsp;&nbsp;&nbsp;La Restauraci&oacute;n se ha Realizado Satisfactoriamente.</p>',{onComplete:
  27.           function(returnvalue) {
  28.             if(returnvalue)
  29.             {
  30.          location.href="restaurar.jsp";
  31.             }}});
  32.  
  33.     }   );          </script><%
  34.        }
  35.         else{
  36.              if(restaurar.resp()==false){
  37.          %>
  38.     <script type="text/javascript">
  39.             window.addEvent('domready', function() {
  40.     Sexy = new SexyAlertBox();
  41. Sexy.error('<h1>Error de Restauraci&oacute;n!!!</h1><p>La Restauracion ha Fallado:</p><p>Inténtalo de nuevo.</p>',{onComplete:
  42.           function(returnvalue) {
  43.             if(returnvalue)
  44.             {
  45.              location.href="restaurar.jsp";
  46.             }}});
  47.  
  48.     }   );
  49. <%
  50.              }
  51.         }
  52.      }
  53.      %>
  54.     </body>
  55. </html>


para los avisos utilizo mootools se buscan en google como sexylightbox

y este es el bean q hace todo el proceso de restauracion


Código Java:
Ver original
  1. import java.io.FileInputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5.  
  6. public class restaurar {
  7.    boolean band=false;
  8.  public void RecuperarBackup(String r){
  9.    
  10.      try {
  11.          // Ejecucion del cliente mysql
  12.          Process p = Runtime.getRuntime().exec(
  13.                  "C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysql --password= --user=root");
  14.          InputStream es = p.getErrorStream();
  15.          muestraSalidaDeError(es);
  16.          OutputStream os = p.getOutputStream();
  17.          FileInputStream fis = new FileInputStream(r);
  18.          byte buffer[] = new byte[1024];
  19.          int leido = fis.read(buffer);
  20.          while (leido > 0) {
  21.              System.out.println(leido);
  22.              os.write(buffer, 0, leido);
  23.              leido = fis.read(buffer);
  24.          }
  25.          os.close();
  26.          fis.close();
  27.         band=true;
  28.        
  29.      } catch (IOException e) {
  30.          e.printStackTrace();
  31.      }
  32.    resp();
  33.  }
  34. public boolean resp(){
  35. return band;
  36. }
  37.    public void muestraSalidaDeError(final InputStream es) {
  38.      Thread hiloError = new Thread() {
  39.             @Override
  40.          public void run() {
  41.              try {
  42.                  byte[] buffer = new byte[1024];
  43.                  int leido = es.read(buffer);
  44.                  while (leido > 0) {
  45.                      System.out.println(new String(buffer, 0, leido));
  46.                      leido = es.read(buffer);
  47.                  }
  48.                  es.close();
  49.              } catch (Exception e) {
  50.                  e.printStackTrace();
  51.              }
  52.          }
  53.      };
  54.      hiloError.start();
  55.  }
  56. }


y este es el codigo para java

primero deben de crear un nuevo jFrame form

y agregarle dos botones y un jTextFiel

bueno si analizan el codigo veran q mas hacer

Código Java:
Ver original
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.OutputStream;
  6. import javax.swing.JFileChooser;
  7. import javax.swing.JOptionPane;
  8. class restaurar extends javax.swing.JFrame {
  9.  private File archivo;
  10.      public restaurar() {
  11.         initComponents();
  12.     }
  13.  
  14.        private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  15.         // TODO add your handling code here:
  16.           RecuperarBackup();
  17.     }                                        
  18.  
  19.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  20.         // TODO add your handling code here:
  21.          JFileChooser fc = new JFileChooser();
  22. int resp = fc.showOpenDialog(this);
  23. if(resp == JFileChooser.APPROVE_OPTION){
  24.     archivo = fc.getSelectedFile();
  25.     jTextField1.setText(archivo.getAbsolutePath());
  26. }
  27.     }                                        
  28.  
  29.     /**
  30.     * @param args the command line arguments
  31.     */
  32.     public void RecuperarBackup() {
  33.      try {
  34.          // Ejecucion del cliente mysql
  35.          Process p = Runtime.getRuntime().exec(
  36.                  "C:/Archivos de programa/MySQL/MySQL Server 5.1/bin/mysql --password= --user=root");
  37.          // Lectura de la salida de error y se muestra por pantalla.
  38.          InputStream es = p.getErrorStream();
  39.          muestraSalidaDeError(es);
  40.          // Lectura del fichero de backup y redireccion a la entrada estandar
  41.          // de mysql.
  42.          OutputStream os = p.getOutputStream();
  43.          FileInputStream fis = new FileInputStream(jTextField1.getText());
  44.          byte buffer[] = new byte[1024];
  45.          int leido = fis.read(buffer);
  46.          while (leido > 0) {
  47.              System.out.println(leido);
  48.              os.write(buffer, 0, leido);
  49.              leido = fis.read(buffer);
  50.          }
  51.          os.close();
  52.          fis.close();
  53.            JOptionPane.showMessageDialog(null, "Restauracion Completada Satisfactoriamente");
  54.      } catch (IOException e) {
  55.          e.printStackTrace();
  56.      }
  57.  }
  58.  /*** Se saca por pantalla la salida de errores del comando, por si acaso.
  59.   *        * @param es
  60.   *
  61.   * El InputStream de donde leer los errores del comando mysql.       */
  62.  private void muestraSalidaDeError(final InputStream es) {
  63.      Thread hiloError = new Thread() {
  64.             @Override
  65.          public void run() {
  66.              try {
  67.                  byte[] buffer = new byte[1024];
  68.                  int leido = es.read(buffer);
  69.                  while (leido > 0) {
  70.                      System.out.println(new String(buffer, 0, leido));
  71.                      leido = es.read(buffer);
  72.                  }
  73.                  es.close();
  74.              } catch (Exception e) {
  75.                  e.printStackTrace();
  76.              }
  77.          }
  78.      };
  79.      hiloError.start();
  80.  }
  81.     public static void main(String args[]) {
  82.          restaurar p = new restaurar();
  83.     p.setLocationRelativeTo(null);
  84.     p.setVisible(true);
  85.     }
  86.  
  87.     // Variables declaration - do not modify                    
  88.     private javax.swing.JButton jButton1;
  89.     private javax.swing.JButton jButton6;
  90.     private javax.swing.JLabel jLabel1;
  91.     private javax.swing.JLabel jLabel2;
  92.     private javax.swing.JTextField jTextField1;
  93.     // End of variables declaration                  
  94.  
  95. }

bueno espero les sirva, me costo mucho conseguir el codigo y luego adaptarlo a mis necesidades y se los comparto xq muchas personas tienen la costumbre de q una vez q obtienen lo que quieren no dicen como lo solucionaron y postean su solucion, en lo personal se me hace muy egoista pedir ayuda y no regresar el favor, ya q esto nos puede ser de mucha ayuda a los demas

suerte!!!

no olviden sus comentarios