Advertisement
max_wadaka

BD xml

Jun 10th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.61 KB | None | 0 0
  1. package xml;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.OutputStreamWriter;
  7. import java.sql.Connection;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.sql.Statement;
  11. import java.util.ArrayList;
  12.  
  13. import java.sql.Connection;
  14. import java.sql.DriverManager;
  15. import java.sql.SQLException;
  16.  
  17.  
  18. public class BD {
  19.    
  20.    
  21.     public String saca_bases(){
  22.         Conexion conecta = new Conexion(null);
  23.         Connection con= conecta.getConnection();
  24.         Statement st;
  25.         ResultSet tabla=null;
  26.         String sql="show databases" ;
  27.         String base=null;
  28.         ArrayList<String> bases= new ArrayList();
  29.         try{
  30.             boolean existe=false;
  31.             st=con.createStatement();
  32.             tabla=st.executeQuery(sql);
  33.             do{
  34.                
  35.                 existe=false;
  36.                 while(tabla.next()){
  37.                     System.out.println(tabla.getString(1));
  38.                     bases.add(tabla.getString(1));
  39.                    
  40.                 }
  41.                 base=teclado.cadena("\n¿Que base de datos quieres importar?");
  42.                 for(int i=0;i<bases.size();i++){
  43.                     if(base.equalsIgnoreCase(bases.get(i))){
  44.                         existe=true;
  45.                     }
  46.                 }  
  47.                 if(!existe){
  48.                     System.out.println("Esa base de datos no existe!!");
  49.                 }
  50.             }while(!existe);
  51.             //con.close();
  52.             tabla.close();
  53.             st.close();
  54.                
  55.              
  56.         }catch(SQLException e){
  57.             e.printStackTrace();
  58.         }
  59.         return base;
  60.     }
  61.    
  62.    
  63.     public String saca_tablas(String base){
  64.         Conexion conecta = new Conexion(base);
  65.         Connection con= conecta.getConnection();
  66.         Statement st;
  67.         ResultSet tabla=null;
  68.         String sql="show FULL tables FROM " +base ;
  69.         ArrayList<String> elementos = new ArrayList<String>();
  70.         String tabla_clave=null;
  71.        
  72.         try{
  73.             boolean existe=false;
  74.             st=con.createStatement();
  75.             tabla=st.executeQuery(sql);
  76.             do{
  77.                
  78.                 existe=false;
  79.                  
  80.                 while(tabla.next()){
  81.                     System.out.println(tabla.getString(1));
  82.                     elementos.add(tabla.getString(1));
  83.                    
  84.                 }
  85.                 tabla_clave=teclado.cadena("\n¿Que tabla de datos quieres importar?");
  86.                 for(int i=0;i<elementos.size();i++){
  87.                     if(tabla_clave.equals(elementos.get(i))){
  88.                         existe=true;
  89.                         tabla_clave=elementos.get(i);
  90.                     }
  91.                 }  
  92.                 if(!existe){
  93.                     System.out.println("Esa base de datos no existe!!");
  94.                 }
  95.             }while(!existe);
  96.                
  97.         //con.close();
  98.         tabla.close();
  99.         st.close();    
  100.         }catch(SQLException e){
  101.             e.printStackTrace();
  102.            
  103.         }  
  104.        
  105.         return tabla_clave;
  106.     }
  107.     public boolean exporta_tabla(String base, String tabla){
  108.         boolean correcto=true;
  109.        
  110.         try{
  111.  
  112.             Class.forName("com.mysql.jdbc.Driver");
  113.             Connection link= DriverManager.getConnection("jdbc:mysql://localhost/"+base,"root","");
  114.             Statement st=link.createStatement();
  115.             ResultSet rssaca_tabla=st.executeQuery("SELECT * FROM "+tabla);    
  116.            
  117.             ArrayList<String> elementos = new ArrayList<String>();
  118.            
  119.             File fichero = new File("C:\\Users\\MAX\\Desktop\\Pruebas_ficheros\\base.xml");
  120.             BufferedWriter Fescribe=null;  
  121.            
  122.             if(!fichero.exists()){
  123.                 fichero.createNewFile();
  124.                 Fescribe = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fichero,false), "utf-8"));
  125.             }else{
  126.                 Fescribe = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fichero,false), "utf-8"));
  127.             }                
  128.            
  129.             Fescribe.write("<XML> \r\n");
  130.             System.out.println("<XML> \r\n");
  131.            
  132.             while(rssaca_tabla.next()){
  133.                 elementos=exporta_elementos(tabla,base);
  134.                
  135.                 Statement stescribe=link.createStatement();
  136.                 System.out.println(tabla);
  137.                 ResultSet rs2=stescribe.executeQuery("SELECT * FROM "+tabla+"");
  138.                
  139.                 Fescribe = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fichero,true), "utf-8"));
  140.  
  141.                
  142.                  System.out.println("   <"+tabla+"> \r");
  143.                 while(rs2.next()){
  144.                      Fescribe.write("   <"+tabla+"> \r\n" );
  145.                     for(int i =1; i<elementos.size();i++){
  146.                         Fescribe.write("        <"+elementos.get(i)+">" +rs2.getString(i)+"</"+elementos.get(i)+"> \r\n ");
  147.                         System.out.println("        <"+elementos.get(i)+">" +rs2.getString(i)+"</"+elementos.get(i)+"> \r\n ");
  148.                     }  
  149.                     Fescribe.write("    </"+tabla+" > \r\n");
  150.                 }
  151.                
  152.                 System.out.println("    </"+tabla+" > \r\n");
  153.                
  154.             rs2.close();
  155.             stescribe.close(); 
  156.             correcto=true;
  157.             }
  158.            
  159.             Fescribe.write("</XML> \r\n");
  160.             System.out.println("</XML> \r\n"); 
  161.                        
  162.         //link.close();
  163.         rssaca_tabla.close();
  164.         st.close();    
  165.         Fescribe.close();  
  166.        
  167.         }catch (IOException | ClassNotFoundException | SQLException e){
  168.            
  169.             e.printStackTrace();
  170.             correcto=false;
  171.         }
  172.        
  173.         return correcto;
  174.     }
  175.    
  176.     public ArrayList<String> exporta_elementos(String tabla,String base){
  177.         ArrayList<String> elementos = new ArrayList<String>();
  178.        
  179.        
  180.         try{
  181.             Conexion conectaexporta_elementos = new Conexion(base);
  182.             Connection con1= conectaexporta_elementos.getConnection();
  183.             Statement st1;
  184.             ResultSet rsexporta_elementos=null;
  185.             String sql="describe " +tabla ;
  186.            
  187.             st1=con1.createStatement();
  188.             rsexporta_elementos=st1.executeQuery(sql);
  189.                
  190.             while(rsexporta_elementos.next()){
  191.                 elementos.add(rsexporta_elementos.getString(1));
  192.                 System.out.println(rsexporta_elementos.getString(1));
  193.             }      
  194.                
  195.         //con1.close();
  196.         rsexporta_elementos.close();
  197.         st1.close();       
  198.         }catch(SQLException e){
  199.             e.printStackTrace();
  200.         }  
  201.         return elementos;
  202.     }
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement