Añado los fuentes de java
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.util.Vector;
|
||||
import java.sql.*;
|
||||
import org.w3c.dom.*;
|
||||
import com.tarisan.generador.oracle.ObtenerTablasBDOracle;
|
||||
|
||||
|
||||
public class ObtenerTablasBD
|
||||
{
|
||||
|
||||
//CONSTANTES para determinar el tipo de generación
|
||||
public static final int JAVA = 0;
|
||||
public static final int XML = 1;
|
||||
public static final int DATOS_XML = 2;
|
||||
public static final int DOC = 3;
|
||||
public static final int SQL = 4;
|
||||
public static final int HTML = 5;
|
||||
|
||||
|
||||
//ATRIBUTOS
|
||||
|
||||
/**
|
||||
Tipo de generación (se recibirá en el constructor
|
||||
*/
|
||||
|
||||
private int tipo;
|
||||
|
||||
|
||||
/**
|
||||
Elemento <BASE_DATOS> del xml de configuracion
|
||||
"configuracion_generador_bd.xml
|
||||
*/
|
||||
|
||||
private Element elementoBD = null;
|
||||
|
||||
|
||||
|
||||
//METODOS:
|
||||
|
||||
|
||||
/**
|
||||
Constructor de la clase
|
||||
*/
|
||||
public ObtenerTablasBD(Element newElementoBD)
|
||||
{
|
||||
elementoBD = newElementoBD;
|
||||
tipo = ObtenerTablasBD.JAVA;
|
||||
}
|
||||
|
||||
public ObtenerTablasBD(Element newElementoBD, int tip)
|
||||
{
|
||||
elementoBD = newElementoBD;
|
||||
tipo = tip;
|
||||
}
|
||||
|
||||
public ObtenerTablasBD()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Dado un elemento BASE_DATOS hace la conexion a la BD
|
||||
y devuelve un Vector con las Tablas (objetos Tabla) de la BD correspondientes
|
||||
Si no estan especificadas en el xml, devuelve todas
|
||||
*/
|
||||
|
||||
public Vector getTablas( )
|
||||
{
|
||||
Vector vectorTablas = new Vector();
|
||||
Connection conn = null;
|
||||
|
||||
ResultSet rs = null;
|
||||
ResultSet rsPKeys = null;
|
||||
ResultSetMetaData rsMetaData = null;
|
||||
|
||||
try
|
||||
{
|
||||
//datos referentes a la conexion a la BD
|
||||
String driver = elementoBD.getAttribute("driver");
|
||||
String user = elementoBD.getAttribute("user");
|
||||
String password = elementoBD.getAttribute("password");
|
||||
String url = elementoBD.getAttribute("url");
|
||||
|
||||
// Conexion a la BD y tomo el statement
|
||||
Class.forName(driver);
|
||||
conn = DriverManager.getConnection(url, user , password);
|
||||
|
||||
|
||||
/*
|
||||
Obtengo los nombres de las tablas:
|
||||
Si estan especificadas en el xml: getNombresTablasXML(elementoBD)
|
||||
En caso contrario: getNombresAllTablasBDOracle( conn )
|
||||
*/
|
||||
String[] nombresTabla = null;
|
||||
NodeList elementosTabla = elementoBD.getElementsByTagName("TABLA");
|
||||
|
||||
/*
|
||||
Si no hay elementos <TABLA>, elementosTabla.getLength=0
|
||||
y hay que tomar todas las tablas de la BD
|
||||
*/
|
||||
ObtenerTablasBDOracle tablasOracle = new ObtenerTablasBDOracle(conn);
|
||||
|
||||
if( elementosTabla.getLength() == 0)
|
||||
nombresTabla = tablasOracle.getNombresAllTablasBD();
|
||||
else
|
||||
nombresTabla = getNombresTablasXML( elementosTabla );
|
||||
|
||||
//Voy a ir recorriendo las tablas y sus correspondientes campos
|
||||
// vectorTablas = tablasOracle.getTablasBD(nombresTabla);
|
||||
vectorTablas = tablasOracle.getTablasBD(nombresTabla, tipo);
|
||||
return vectorTablas;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.err.println(e);
|
||||
}
|
||||
|
||||
//devuelvo el vector de tablas
|
||||
vectorTablas.trimToSize();
|
||||
return vectorTablas;
|
||||
}
|
||||
|
||||
public Vector getTablas(Connection conexion)
|
||||
{
|
||||
Vector vectorTablas = new Vector();
|
||||
Connection conn = null;
|
||||
|
||||
ResultSet rs = null;
|
||||
ResultSet rsPKeys = null;
|
||||
ResultSetMetaData rsMetaData = null;
|
||||
|
||||
try
|
||||
{
|
||||
/*
|
||||
Obtengo los nombres de las tablas:
|
||||
Si estan especificadas en el xml: getNombresTablasXML(elementoBD)
|
||||
En caso contrario: getNombresAllTablasBDOracle( conn )
|
||||
*/
|
||||
String[] nombresTabla = null;
|
||||
|
||||
/*
|
||||
Si no hay elementos <TABLA>, elementosTabla.getLength=0
|
||||
y hay que tomar todas las tablas de la BD
|
||||
*/
|
||||
ObtenerTablasBDOracle tablasOracle = new ObtenerTablasBDOracle(conexion);
|
||||
|
||||
nombresTabla = tablasOracle.getNombresAllTablasBD();
|
||||
|
||||
//Voy a ir recorriendo las tablas y sus correspondientes campos
|
||||
// vectorTablas = tablasOracle.getTablasBD(nombresTabla);
|
||||
vectorTablas = tablasOracle.getTablasBD(nombresTabla, tipo);
|
||||
return vectorTablas;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.err.println(e);
|
||||
}
|
||||
|
||||
//devuelvo el vector de tablas
|
||||
vectorTablas.trimToSize();
|
||||
return vectorTablas;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
Parsea el XML y devuelve los nombres de las tablas especificadas
|
||||
*/
|
||||
private String[] getNombresTablasXML( NodeList elementosTabla )
|
||||
{
|
||||
String[] resultado = null;
|
||||
Vector vectorNombres = new Vector();
|
||||
|
||||
//Busco los nombres de las tablas en el documento XML
|
||||
Node nodo;
|
||||
for( int k = 0; k < elementosTabla.getLength() ; k++ )
|
||||
{
|
||||
nodo = elementosTabla.item(k);
|
||||
vectorNombres.addElement(((Element)nodo).getAttribute("name") );
|
||||
}
|
||||
|
||||
//Tomo el array de Strings
|
||||
vectorNombres.trimToSize();
|
||||
resultado = new String[ vectorNombres.size() ];
|
||||
vectorNombres.copyInto(resultado);
|
||||
|
||||
// devuelvo el resultado
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user