Un post cortito de fin de semana 🙂 , este trata de la forma de extraer la información de una base de datos formar una estructura XML y guardar este en disco.
¿Que utilizaremos?
1. Lo primero que necesitamos es crear una base de datos y añadir una tabla «persona», el código es:
CREATE TABLE persona ( ci varchar(7) NOT NULL, nombre varchar(60) NOT NULL, fecha_nac datetime NOT NULL, profesion varchar(32) NOT NULL, PRIMARY KEY (ci) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Por demás esta decir que debes añadirle algunos datos 🙂
2. Crea un nuevo proyecto en Netbeans o el IDE que utilices y crea una nueva clase que llamaremos «xml.java».
import java.io.*; import java.util.*; import java.sql.*; import org.jdom.*; import org.jdom.output.*; /** * @web https://www.jc-mouse.net/ * @author Mouse */ public class xml { //archivo destino private String file="C:/miarchivo.xml"; /* DATOS PARA LA CONEXION */ private String db = "BASE_DE_DATOS"; private String user = "USUARIO"; private String password = "PASSWORD"; private Connection conn = null; public xml(){ conectar(); } private void conectar() { String url = "jdbc:mysql://localhost/"+this.db; try{ //obtenemos el driver de para mysql Class.forName("com.mysql.jdbc.Driver"); //obtenemos la conexión conn = DriverManager.getConnection(url, this.user , this.password ); if (conn!=null){ System.out.println("OK base de datos "+this.db+" listo"); } }catch(SQLException e){ System.out.println(e); }catch(ClassNotFoundException e){ System.out.println(e); } } public void getXML() { Document doc = new Document(); //etiqueta principal Element root = new Element("DataBase"); doc.setRootElement(root); try { //consulta String q = "SELECT * FROM persona"; Statement stmt = conn.createStatement(); ResultSet resultset = stmt.executeQuery(q); ResultSetMetaData resultmetadata = resultset.getMetaData(); //obtiene la cantidad de columnas de la tabla int numCols = resultmetadata.getColumnCount(); while (resultset.next()) { List elmts = new ArrayList(); for (int i=1; i <= numCols; i++) { //obtiene nombre de columna String colName = resultmetadata.getColumnName(i); //Obtiene el contendio de la celda String colVal = resultset.getString(i); //forma los elementos para el XML Element elmt = new Element(colName); elmt.setText(colVal); elmts.add(elmt); } //para la etiqueta Element row = new Element("registro"); //añade el registro en xml row.setContent(elmts); root.addContent(row); } //cierra database resultset.close(); stmt.close(); conn.close(); // Graba el archiv XML en disco XMLOutputter outputter = new XMLOutputter( Format.getPrettyFormat() ); try { outputter.output(doc, new FileOutputStream ( file )); System.out.println("Arhivo XML creado en " + file); } catch (IOException e) { System.out.println(e); } } catch (SQLException e) { System.err.println(e); } } }
Ya para terminar ejecuta la clase desde el main y listo 🙂
<?xml version="1.0" encoding="UTF-8"?> <DataBase> <registro> <ci>0000001</ci> <nombre>Ana Lisa Melano</nombre> <fecha_nac>1988-03-08 22:18:58.0</fecha_nac> <profesion>Bailarina</profesion> </registro> <registro> <ci>0000002</ci> <nombre>Cindy Entes</nombre> <fecha_nac>1996-03-26 22:20:05.0</fecha_nac> <profesion>Odontologo</profesion> </registro> <registro> <ci>0000003</ci> <nombre>Zoila Concha Tumadre</nombre> <fecha_nac>1987-03-28 22:21:19.0</fecha_nac> <profesion>Astronauta</profesion> </registro> </DataBase>
Eso es todo, descargate el ejemplo «jdomdb» gratis 🙂
Saludos benignos digo malignos 🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Java2d nos permite manipular imagenes y asi poder crear animaciones sencillas como muestra el siguiente video. Puedes de...
Shutter Encoder es un software de conversión de video el cual tambien maneja audio e imagenes. Su interfaz de usuario ha...
Para conectar Visual Basic .NET con una base de datos de MS Access se utiliza la libreria «System.Data.OleDb» en el sigu...
Para ponerse a tono con el ambiente mundialista de Brasil 2014, en este post construiremos un swing java al que llamarem...
En este post, crearemos una tabla swing que implemente un control jcombobox en una columna de una tabla, llenaremos con...
La Inteligencia Artificial (AI – Artificial Intelligence) estará presente en casi cada aspecto de nuestra vida en...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
Hola, la verdad me ha sido de bastante ayuda, pero ahora necesito el mismo XML leerlo e insertar sus valores en otra BD con la misma tabla, que me recomiendas para hacer el proceso a la inversa?
Pues solo debes parsear el XML con JDOM asi obtienes todos los campos del archivo y estos los vas agregando con un ciclo repetitivo a la base de datos, como es la misma tabla no hay ningun problema
Hola, me parece interesante lo ke comentas aki, pero lo veo un poco dificil y tengo una duda!, Tengo una base de datos como no entiendo mucho de esto te dire ke aparentemente es paradox (la puedo abrir con access y modificarla, y el programa que la usa sigue normal) y lo que quiero es ke cada vez que yo emita una factura pueda grabar dicha factura en un xml(no se si los xml son diferentes, tengo ke crear una plantilla o todos son iguales solo cambian los datos), la cuestion es que es para factura electronica y esto me pide mi proveedor de facturas electronicas un archivo xml por factura ? puedes ayudarme ? Gracias por el tiempo prestado. Un saludo
🙂
1. si puedes abrir tu base de datos y modificar, modificaras los datos pero no la estructura en si, si haces eso, tu aplicación ya no funcionaria.
2. Los XML no son iguales, depende de los datos que tu quieras almacenar en ellos pueden variar poco o mucho entre ellos.
3. Las facturas electrónicas no son iguales, si tu proveedor te pide un archivo XML, debe tener este un standar con el cual él trabaja, debes solicitar que te de una plantilla pata que tu puedas adecuar tus datos en tu XML.
amigo muy buen aporte pero queria que me orientaras mas en solo lo que corresponde al jdom y java desde netbeans sabes esque tengo que realizar un trabajo en la u en la cual me pide que con la libreria jdom cree archivos xml Me podria orientar mucho mas acerca del tema