Añado los fuentes de java
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
|
||||
public class Campo{
|
||||
|
||||
private boolean clave;
|
||||
private String nombre;
|
||||
private String nombreOriginal;
|
||||
private String tipo;
|
||||
private boolean requerido;
|
||||
private int largo;
|
||||
private String tipoOracle;
|
||||
private String claveOracle;
|
||||
private String longitudOracle;
|
||||
|
||||
public Campo()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
//metodos set get
|
||||
|
||||
public boolean getClave()
|
||||
{
|
||||
return clave;
|
||||
}
|
||||
|
||||
public void setClave( boolean nuevoClave )
|
||||
{
|
||||
clave = nuevoClave;
|
||||
}
|
||||
|
||||
public String getNombre()
|
||||
{
|
||||
return nombre;
|
||||
}
|
||||
|
||||
public void setNombre( String nuevoNombre )
|
||||
{
|
||||
nombre = nuevoNombre;
|
||||
}
|
||||
|
||||
public String getNombreOriginal()
|
||||
{
|
||||
return nombreOriginal;
|
||||
}
|
||||
|
||||
public void setNombreOriginal( String nuevoNombreOriginal )
|
||||
{
|
||||
nombreOriginal = nuevoNombreOriginal;
|
||||
}
|
||||
|
||||
public String getTipo()
|
||||
{
|
||||
return tipo;
|
||||
}
|
||||
|
||||
public void setTipo( String nuevoTipo )
|
||||
{
|
||||
tipo = nuevoTipo;
|
||||
}
|
||||
|
||||
public boolean getRequerido()
|
||||
{
|
||||
return requerido;
|
||||
}
|
||||
|
||||
public void setRequerido( boolean nuevoRequerido )
|
||||
{
|
||||
requerido = nuevoRequerido;
|
||||
}
|
||||
public int getLargo()
|
||||
{
|
||||
return largo;
|
||||
}
|
||||
|
||||
public void setLargo( int nuevoLargo )
|
||||
{
|
||||
largo = nuevoLargo;
|
||||
}
|
||||
|
||||
public String getTipoOracle()
|
||||
{
|
||||
return tipoOracle;
|
||||
}
|
||||
|
||||
public void setTipoOracle( String nuevoTipo )
|
||||
{
|
||||
tipoOracle = nuevoTipo;
|
||||
}
|
||||
|
||||
public String getLongitudOracle()
|
||||
{
|
||||
return longitudOracle;
|
||||
}
|
||||
|
||||
public void setLongitudOracle( String nuevoLongitud )
|
||||
{
|
||||
longitudOracle = nuevoLongitud;
|
||||
}
|
||||
|
||||
public String getClaveOracle()
|
||||
{
|
||||
return claveOracle;
|
||||
}
|
||||
|
||||
public void setClaveOracle( String nuevoClave )
|
||||
{
|
||||
claveOracle = nuevoClave;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
|
||||
public class Dato{
|
||||
|
||||
private String clase;
|
||||
private String nombre;
|
||||
private String nombreOriginal;
|
||||
private String valor;
|
||||
|
||||
public Dato()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
//metodos set get
|
||||
|
||||
public String getClase()
|
||||
{
|
||||
return clase;
|
||||
}
|
||||
|
||||
public void setClase( String nuevoClase )
|
||||
{
|
||||
clase = nuevoClase;
|
||||
}
|
||||
|
||||
public String getNombre()
|
||||
{
|
||||
return nombre;
|
||||
}
|
||||
|
||||
public void setNombre( String nuevoNombre )
|
||||
{
|
||||
nombre = nuevoNombre;
|
||||
}
|
||||
|
||||
public String getNombreOriginal()
|
||||
{
|
||||
return nombreOriginal;
|
||||
}
|
||||
|
||||
public void setNombreOriginal( String nuevoNombreOriginal )
|
||||
{
|
||||
nombreOriginal = nuevoNombreOriginal;
|
||||
}
|
||||
|
||||
public String getValor()
|
||||
{
|
||||
return valor;
|
||||
}
|
||||
|
||||
public void setValor( String nuevoValor )
|
||||
{
|
||||
valor = nuevoValor;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import com.tarisan.control.*;
|
||||
import com.tarisan.excepcion.*;
|
||||
import com.tarisan.generador.ObtenerTablasBD;
|
||||
import java.sql.*;
|
||||
import java.util.Vector;
|
||||
|
||||
|
||||
public class GeneradorJavaBeansBD
|
||||
{
|
||||
|
||||
/**
|
||||
Metodo main
|
||||
*/
|
||||
public static void main(String[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
ParametrosConfiguracion.cargarPropiedades();
|
||||
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
|
||||
|
||||
// Nombre del package de los JavaBeans
|
||||
String packageName = "com.tarisan";
|
||||
|
||||
int tipo = ObtenerTablasBD.JAVA;
|
||||
|
||||
Vector vectorAll = new Vector();
|
||||
Vector vectorTablas = null;
|
||||
ObtenerTablasBD obtenerTablas = new ObtenerTablasBD();
|
||||
vectorTablas = obtenerTablas.getTablas(conexion);
|
||||
vectorAll.addElement(vectorTablas);
|
||||
|
||||
vectorAll.trimToSize();
|
||||
|
||||
generarJavaBeans(vectorAll, packageName);
|
||||
|
||||
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
|
||||
}
|
||||
catch(ExcepcionTarisan ex)
|
||||
{
|
||||
System.out.println("ExcepcionTarisan: " + ex);
|
||||
}
|
||||
}//fin de metodo main
|
||||
|
||||
|
||||
/**
|
||||
Metodo para generar los JavaBeans
|
||||
*/
|
||||
|
||||
private static void generarJavaBeans(Vector vectorAll, String packageName)
|
||||
{
|
||||
System.out.println("\nGenerando clases data en "+ System.getProperties().get("user.dir") + "\\dataGenerado\\...");
|
||||
|
||||
Vector unVectorTabla;
|
||||
Tabla tabla;
|
||||
for( int j = 0 ; j < vectorAll.size() ; j++)
|
||||
{
|
||||
unVectorTabla = ( Vector )(vectorAll.elementAt(j)) ;
|
||||
|
||||
// Recorro el vector de tablas
|
||||
for(int k = 0; k < unVectorTabla.size(); k++)
|
||||
{
|
||||
tabla = (Tabla)(unVectorTabla.elementAt(k));
|
||||
GenerarObjetoBaseBD.crearObjetoBase(tabla, packageName);
|
||||
// GenerarAttributeInfoBD.crearAttributeInfo(tabla, packageName);
|
||||
// GenerarBeanInfoBD.crearBeanInfo(tabla, packageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Vector;
|
||||
|
||||
public class GenerarAttributeInfoBD
|
||||
{
|
||||
public static void crearAttributeInfo( Tabla tabla , String packageName)
|
||||
{
|
||||
String nombreClase = tabla.getNombre();
|
||||
System.out.println("Generando " + nombreClase + "AttributeInfo...");
|
||||
|
||||
try{
|
||||
|
||||
PrintWriter out = new PrintWriter( new FileWriter(".\\dataGenerado\\" + nombreClase + "AttributeInfo.java" ) );
|
||||
|
||||
out.println("package " + packageName + ".data;\r\r\n\r\r\n\r\r\n");
|
||||
out.println( "public class " + nombreClase + "AttributeInfo extends " + packageName + ".persistencia.ObjetoBaseAttributeInfo" );
|
||||
out.println( "{" );
|
||||
|
||||
//Recorro las propiedades
|
||||
String definicionPropiedades = "";
|
||||
String listaClaves = "";
|
||||
String metodosPropiedades = "";
|
||||
String tipo="", nombrePropiedad="";
|
||||
boolean clave , required;
|
||||
String originalName=null, largo=null;
|
||||
String nombrePropiedadCambiada = null;
|
||||
String tipoElemento = null;
|
||||
String columna="";
|
||||
|
||||
Vector vectorCampos = tabla.getCampos();
|
||||
Campo campo;
|
||||
|
||||
for( int i=0; i < vectorCampos.size(); i++ )
|
||||
{
|
||||
campo = ( Campo )vectorCampos.elementAt(i);
|
||||
nombrePropiedad = campo.getNombre();
|
||||
|
||||
//Saco sus propiedades
|
||||
nombrePropiedad = campo.getNombre();
|
||||
tipo = campo.getTipo();
|
||||
clave = campo.getClave();
|
||||
required = campo.getRequerido();
|
||||
originalName = campo.getNombreOriginal();
|
||||
largo = "" + campo.getLargo();
|
||||
|
||||
//Definicion de las propiedades
|
||||
definicionPropiedades += "\tprivate boolean " + nombrePropiedad +"Required = "+ required +";\r\n";
|
||||
definicionPropiedades += "\tprivate String " + nombrePropiedad +"OriginalName = \""+ originalName +"\";\r\n";
|
||||
definicionPropiedades += "\tprivate int " + nombrePropiedad +"Largo = "+ largo +";\r\n";
|
||||
|
||||
|
||||
//Genero el codigo para las claves
|
||||
if( clave )
|
||||
{
|
||||
if( !listaClaves.equals("") )
|
||||
listaClaves += ", ";
|
||||
listaClaves += "\""+ nombrePropiedad +"\"";
|
||||
}
|
||||
|
||||
|
||||
//Metodos GET
|
||||
//Required
|
||||
nombrePropiedadCambiada = nombrePropiedad + "Required";
|
||||
metodosPropiedades += "\r\n\r\n\tpublic boolean " + getGetMethod( nombrePropiedadCambiada ) +"()\r\n";
|
||||
metodosPropiedades += "\t{\r\n";
|
||||
metodosPropiedades += "\t\treturn " + nombrePropiedadCambiada + ";\r\n";
|
||||
metodosPropiedades += "\t}\r\n";
|
||||
//OriginalName
|
||||
nombrePropiedadCambiada = nombrePropiedad + "OriginalName";
|
||||
metodosPropiedades += "\tpublic String " + getGetMethod( nombrePropiedadCambiada ) +"()\r\n";
|
||||
metodosPropiedades += "\t{\r\n";
|
||||
metodosPropiedades += "\t\treturn " + nombrePropiedadCambiada + ";\r\n";
|
||||
metodosPropiedades += "\t}\r\n";
|
||||
//Largo
|
||||
nombrePropiedadCambiada = nombrePropiedad + "Largo";
|
||||
metodosPropiedades += "\tpublic int " + getGetMethod( nombrePropiedadCambiada ) +"()\r\n";
|
||||
metodosPropiedades += "\t{\r\n";
|
||||
metodosPropiedades += "\t\treturn " + nombrePropiedadCambiada + ";\r\n";
|
||||
metodosPropiedades += "\t}\r\n";
|
||||
//Metodos SET
|
||||
//Required
|
||||
nombrePropiedadCambiada = nombrePropiedad + "Required";
|
||||
metodosPropiedades += "\r\n\tpublic void " + getSetMethod( nombrePropiedadCambiada ) + "( boolean s )\r\n";
|
||||
metodosPropiedades += "\t{\r\n";
|
||||
metodosPropiedades += "\t\t" + nombrePropiedadCambiada + " = s;\r\n";
|
||||
metodosPropiedades += "\t}\r\n";
|
||||
//OriginalName
|
||||
nombrePropiedadCambiada = nombrePropiedad + "OriginalName";
|
||||
metodosPropiedades += "\tpublic void " + getSetMethod( nombrePropiedadCambiada ) + "( String s )\r\n";
|
||||
metodosPropiedades += "\t{\r\n";
|
||||
metodosPropiedades += "\t\t" + nombrePropiedadCambiada + " = s;\r\n";
|
||||
metodosPropiedades += "\t}\r\n";
|
||||
//Required
|
||||
nombrePropiedadCambiada = nombrePropiedad + "Largo";
|
||||
metodosPropiedades += "\tpublic void " + getSetMethod( nombrePropiedadCambiada ) + "( int s )\r\n";
|
||||
metodosPropiedades += "\t{\r\n";
|
||||
metodosPropiedades += "\t\t" + nombrePropiedadCambiada + " = s;\r\n";
|
||||
metodosPropiedades += "\t}\r\n";
|
||||
|
||||
}//fin del for
|
||||
|
||||
//Imprimo el resto
|
||||
out.println( definicionPropiedades );
|
||||
out.println( "\tprivate String[] primaryKey = {" + listaClaves + "};" );
|
||||
out.println( "\r\n\tpublic String[] getPrimaryKey(){" );
|
||||
out.println( "\t\treturn primaryKey;" );
|
||||
out.println( "\t}" );
|
||||
out.println( metodosPropiedades );
|
||||
out.println( "\r\n\r\n}\r\n" );
|
||||
|
||||
|
||||
out.close();
|
||||
}
|
||||
catch( Exception e )
|
||||
{
|
||||
System.out.println( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static String getGetMethod( String nombrePropiedad )
|
||||
{
|
||||
String nombreMetodo = "get" + nombrePropiedad.substring(0,1).toUpperCase() + nombrePropiedad.substring(1);
|
||||
|
||||
return nombreMetodo;
|
||||
}
|
||||
|
||||
public static String getSetMethod( String nombrePropiedad )
|
||||
{
|
||||
String nombreMetodo = "set" + nombrePropiedad.substring(0,1).toUpperCase() + nombrePropiedad.substring(1);
|
||||
|
||||
return nombreMetodo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Vector;
|
||||
|
||||
|
||||
public class GenerarBeanInfoBD
|
||||
{
|
||||
|
||||
public static void crearBeanInfo( Tabla tabla , String packageName)
|
||||
{
|
||||
String nombreClase = tabla.getNombre();
|
||||
System.out.println("Generando " + nombreClase + "BeanInfo...");
|
||||
|
||||
try{
|
||||
PrintWriter out = new PrintWriter( new FileWriter(".\\dataGenerado\\" + nombreClase + "BeanInfo.java" ) );
|
||||
|
||||
//Recorro las columnas
|
||||
//String definicionPropiedades = "";
|
||||
String metodosPropiedades = "";
|
||||
String tipo ="", nombrePropiedad="";
|
||||
int numPropiedades = 0;
|
||||
String textoPropiedades = "";
|
||||
|
||||
Vector vectorCampos = tabla.getCampos();
|
||||
Campo campo;
|
||||
|
||||
for( int i=0; i < vectorCampos.size(); i++ )
|
||||
{
|
||||
campo = ( Campo )vectorCampos.elementAt(i);
|
||||
nombrePropiedad = campo.getNombre();
|
||||
tipo = campo.getTipo();
|
||||
textoPropiedades += "\t\t\tpds[pdsParent.length + "+ numPropiedades + "] = new PropertyDescriptor(\""+ nombrePropiedad +"\", cls);\r\n";
|
||||
numPropiedades++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
out.println("package " + packageName + ".data;\r\r\n\r\r\n\r\r\n");
|
||||
out.println("import java.beans.SimpleBeanInfo;");
|
||||
out.println("import java.beans.BeanInfo;");
|
||||
out.println("import java.beans.Introspector;");
|
||||
out.println("import java.beans.PropertyDescriptor;");
|
||||
out.println("import java.beans.IndexedPropertyDescriptor;\r\n\r\n\r\n");
|
||||
out.println( "public class " + nombreClase + "BeanInfo extends SimpleBeanInfo" );
|
||||
out.println( "{\r\n" );
|
||||
out.println("\tpublic PropertyDescriptor[] getPropertyDescriptors()");
|
||||
out.println("\t{");
|
||||
out.println("\t\tPropertyDescriptor[] pds = null;");
|
||||
out.println("\t\ttry{");
|
||||
out.println("\t\t\t//get the number of properties of the parent class");
|
||||
out.println("\t\t\tBeanInfo bI = Introspector.getBeanInfo( com.iberdrola.compras.persistencia.ObjetoBase.class );");
|
||||
out.println("\t\t\tPropertyDescriptor[] pdsParent = bI.getPropertyDescriptors();");
|
||||
out.println("\t\t\tClass cls = com.iberdrola.compras.data."+ nombreClase +".class;");
|
||||
out.println("\t\t\tint numberLocalProperties = "+ numPropiedades +";");
|
||||
out.println("\t\t\tpds = new PropertyDescriptor[numberLocalProperties + pdsParent.length];");
|
||||
out.println("\t\t\t//");
|
||||
out.println("\t\t\t//first do the parent class");
|
||||
out.println("\t\t\t//");
|
||||
out.println("\t\t\tfor(int i=0;i<pdsParent.length;i++){");
|
||||
out.println("\t\t\t\tpds[i] = pdsParent[i];");
|
||||
out.println("\t\t\t}");
|
||||
out.println( textoPropiedades );
|
||||
out.println( "\t\t}" );
|
||||
out.println( "\t\tcatch(Exception e){" );
|
||||
out.println( "\t\t\tSystem.out.println( e );" );
|
||||
out.println( "\t\t\treturn null;" );
|
||||
out.println( "\t\t}\r\n" );
|
||||
out.println( "\t\treturn pds;" );
|
||||
out.println( "\t}\r\n" );
|
||||
out.println( "}" );
|
||||
|
||||
out.close();
|
||||
}
|
||||
catch( Exception e )
|
||||
{
|
||||
System.out.println( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Vector;
|
||||
|
||||
|
||||
public class GenerarObjetoBaseBD
|
||||
{
|
||||
public static void crearObjetoBase(Tabla tabla, String packageName)
|
||||
{
|
||||
|
||||
String nombreClase = tabla.getNombre();
|
||||
System.out.println("Generando " + nombreClase + "...");
|
||||
try
|
||||
{
|
||||
PrintWriter out = new PrintWriter( new FileWriter(".\\dataGenerado\\" + nombreClase + ".java" ) );
|
||||
|
||||
out.println("/**");
|
||||
out.println(" * @(#) " + nombreClase + ".java");
|
||||
out.println(" */");
|
||||
|
||||
out.println("package " + packageName + ".data;\n\n\n");
|
||||
|
||||
out.println("/**");
|
||||
out.println(" */");
|
||||
out.println( "public class " + nombreClase);
|
||||
out.println( "{" );
|
||||
|
||||
//Recorro las propiedades
|
||||
String definicionPropiedades = "";
|
||||
String metodosPropiedades = "";
|
||||
String tipo ="", nombrePropiedad="";
|
||||
String tipoElemento = null;
|
||||
String columna="";
|
||||
|
||||
Vector vectorCampos = tabla.getCampos();
|
||||
Campo campo;
|
||||
|
||||
for(int i = 0; i < vectorCampos.size(); i++)
|
||||
|
||||
{
|
||||
campo = (Campo)vectorCampos.elementAt(i);
|
||||
nombrePropiedad = campo.getNombre();
|
||||
tipo = campo.getTipo();
|
||||
|
||||
//Definicion de las propiedades
|
||||
definicionPropiedades += "\n\t/**";
|
||||
definicionPropiedades += "\n\t */";
|
||||
definicionPropiedades += "\n\tprivate " + tipo + " " + nombrePropiedad +";\n";
|
||||
|
||||
//Metodo GET
|
||||
metodosPropiedades += "\n\t/**";
|
||||
metodosPropiedades += "\n\t * @return";
|
||||
metodosPropiedades += "\n\t */";
|
||||
metodosPropiedades += "\n\tpublic " + tipo + " " + getGetMethod( nombrePropiedad ) +"()\n";
|
||||
metodosPropiedades += "\t{\n";
|
||||
metodosPropiedades += "\t\treturn this." + nombrePropiedad + ";\n";
|
||||
metodosPropiedades += "\t}\n";
|
||||
|
||||
//Metodo SET
|
||||
// String nuevoPropiedad = "nuevo" + nombrePropiedad.substring(0,1).toUpperCase() + nombrePropiedad.substring(1);
|
||||
String nuevoPropiedad = nombrePropiedad;
|
||||
metodosPropiedades += "\n\t/**";
|
||||
metodosPropiedades += "\n\t * @param " + nuevoPropiedad;
|
||||
metodosPropiedades += "\n\t * @return";
|
||||
metodosPropiedades += "\n\t */";
|
||||
metodosPropiedades += "\n\tpublic void " + getSetMethod(nombrePropiedad) + "(" + tipo + " " + nuevoPropiedad + ")\n";
|
||||
metodosPropiedades += "\t{\n";
|
||||
metodosPropiedades += "\t\tthis." + nombrePropiedad + " = " + nuevoPropiedad + ";\n";
|
||||
metodosPropiedades += "\t}\n";
|
||||
|
||||
}//fin del for
|
||||
|
||||
//Imprimo el resto
|
||||
out.println(definicionPropiedades);
|
||||
out.println(metodosPropiedades);
|
||||
out.println( "\n\n}\n" );
|
||||
|
||||
out.close();
|
||||
}
|
||||
catch( Exception e )
|
||||
{
|
||||
System.out.println( e );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static String getGetMethod(String nombrePropiedad)
|
||||
{
|
||||
String nombreMetodo = "get" + nombrePropiedad.substring(0,1).toUpperCase() + nombrePropiedad.substring(1);
|
||||
|
||||
return nombreMetodo;
|
||||
}
|
||||
|
||||
public static String getSetMethod(String nombrePropiedad)
|
||||
{
|
||||
String nombreMetodo = "set" + nombrePropiedad.substring(0,1).toUpperCase() + nombrePropiedad.substring(1);
|
||||
|
||||
return nombreMetodo;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
|
||||
public class Registro
|
||||
{
|
||||
/**
|
||||
Nombre de la clase correspondiente a la tabla
|
||||
*/
|
||||
private String nombre;
|
||||
|
||||
/**
|
||||
Nombre Original de la clase correspondiente a la tabla
|
||||
*/
|
||||
private String nombreOriginal;
|
||||
|
||||
/**
|
||||
Vector de objetos "Dato"
|
||||
*/
|
||||
private Vector datos;
|
||||
|
||||
public Registro()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
// metodos get y set
|
||||
|
||||
public String getNombre()
|
||||
{
|
||||
return nombre;
|
||||
}
|
||||
|
||||
public void setNombre( String nuevoNombre )
|
||||
{
|
||||
nombre = nuevoNombre;
|
||||
}
|
||||
|
||||
public String getNombreOriginal()
|
||||
{
|
||||
return nombreOriginal;
|
||||
}
|
||||
|
||||
public void setNombreOriginal( String nuevoNombreOriginal )
|
||||
{
|
||||
nombreOriginal = nuevoNombreOriginal;
|
||||
}
|
||||
|
||||
public Vector getDatos()
|
||||
{
|
||||
return datos;
|
||||
}
|
||||
|
||||
public void setDatos( Vector nuevoDatos )
|
||||
{
|
||||
datos = nuevoDatos;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
|
||||
public class Tabla
|
||||
{
|
||||
/**
|
||||
Nombre del JavaBean correspondiente a la tabla
|
||||
*/
|
||||
private String nombre;
|
||||
|
||||
/**
|
||||
Nombre original de la tabla
|
||||
*/
|
||||
private String nombreOriginal;
|
||||
|
||||
/**
|
||||
Vector de objetos "Campo"
|
||||
*/
|
||||
private Vector campos;
|
||||
|
||||
/**
|
||||
Tipo de la tabla
|
||||
*/
|
||||
private String tipoTabla;
|
||||
|
||||
public Tabla()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
// metodos get y set
|
||||
|
||||
public String getNombre()
|
||||
{
|
||||
return nombre;
|
||||
}
|
||||
|
||||
public void setNombre( String nuevoNombre )
|
||||
{
|
||||
nombre = nuevoNombre;
|
||||
}
|
||||
|
||||
public String getNombreOriginal()
|
||||
{
|
||||
return nombreOriginal;
|
||||
}
|
||||
|
||||
public void setNombreOriginal( String nuevoNombreOriginal )
|
||||
{
|
||||
nombreOriginal = nuevoNombreOriginal;
|
||||
}
|
||||
|
||||
|
||||
public Vector getCampos()
|
||||
{
|
||||
return campos;
|
||||
}
|
||||
|
||||
public void setCampos( Vector nuevoCampos )
|
||||
{
|
||||
campos = nuevoCampos;
|
||||
}
|
||||
|
||||
public String getTipoTabla()
|
||||
{
|
||||
return tipoTabla;
|
||||
}
|
||||
|
||||
public void setTipoTabla( String nuevoTipo )
|
||||
{
|
||||
tipoTabla = nuevoTipo;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.tarisan.generador;
|
||||
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
|
||||
public class UtilidadesGeneradorBD
|
||||
{
|
||||
/**
|
||||
|
||||
*/
|
||||
public static String getNombreCampo( String nombreBD )
|
||||
{
|
||||
String nombreCampo = "";
|
||||
StringTokenizer st = new StringTokenizer( nombreBD, "_");
|
||||
String token = "";
|
||||
for( int i=0; st.hasMoreElements(); ++i )
|
||||
{
|
||||
token = (String)st.nextElement();
|
||||
if( i == 0 )
|
||||
nombreCampo += token.toLowerCase();
|
||||
else
|
||||
nombreCampo += token.substring(0,1).toUpperCase() + token.substring(1).toLowerCase();
|
||||
}
|
||||
|
||||
return nombreCampo;
|
||||
}
|
||||
|
||||
/**
|
||||
lo mismo que el anterior pero empezando con mayusculas
|
||||
|
||||
*/
|
||||
public static String getNombreTabla( String nombreBD )
|
||||
{
|
||||
String nombreTabla = "";
|
||||
StringTokenizer st = new StringTokenizer( nombreBD, "_");
|
||||
String token = "";
|
||||
for( int i=0; st.hasMoreElements(); ++i )
|
||||
{
|
||||
token = (String)st.nextElement();
|
||||
nombreTabla += token.substring(0,1).toUpperCase() + token.substring(1).toLowerCase();
|
||||
}
|
||||
|
||||
return nombreTabla;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Esta funcion formatea la fecha de entrada
|
||||
* Formato Origen: YYYY-MM-DD hh:mm:ss....
|
||||
* Formato Salida: DD.MM.YYYY
|
||||
* @return String
|
||||
*/
|
||||
public static String formatearFecha(String entrada)
|
||||
{
|
||||
StringBuffer salida = new StringBuffer();
|
||||
int longitud;
|
||||
|
||||
if(entrada == null)
|
||||
{
|
||||
salida.append("");
|
||||
}
|
||||
else
|
||||
{
|
||||
longitud = entrada.length();
|
||||
if(longitud == 0)
|
||||
{
|
||||
salida.append("");
|
||||
}
|
||||
else
|
||||
{
|
||||
salida.append(entrada.substring(8, 10));
|
||||
salida.append(".");
|
||||
salida.append(entrada.substring(5, 7));
|
||||
salida.append(".");
|
||||
salida.append(entrada.substring(0, 4));
|
||||
}
|
||||
}
|
||||
|
||||
return salida.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,482 @@
|
||||
package com.tarisan.generador.oracle;
|
||||
|
||||
|
||||
import com.tarisan.generador.Tabla;
|
||||
import com.tarisan.generador.Campo;
|
||||
import com.tarisan.generador.Registro;
|
||||
import com.tarisan.generador.Dato;
|
||||
import com.tarisan.generador.UtilidadesGeneradorBD;
|
||||
import com.tarisan.generador.ObtenerTablasBD;
|
||||
|
||||
import java.util.Vector;
|
||||
import java.sql.*;
|
||||
|
||||
public class ObtenerTablasBDOracle
|
||||
{
|
||||
|
||||
/**
|
||||
Conexión a Oracle
|
||||
*/
|
||||
private Connection conn;
|
||||
|
||||
|
||||
/**
|
||||
* constructor de la clase
|
||||
*/
|
||||
public ObtenerTablasBDOracle(Connection newConn)
|
||||
{
|
||||
conn = newConn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* metodo que ,dado un array de Strings con los nombres de
|
||||
* las tablas devuelve un vector de objetos Tabla
|
||||
*/
|
||||
public Vector getTablasBD(String[] nombresTabla, int tipo)
|
||||
{
|
||||
Vector vectorTablas = new Vector();
|
||||
Statement stmt = null;
|
||||
|
||||
try
|
||||
{
|
||||
stmt = conn.createStatement();
|
||||
switch(tipo)
|
||||
{
|
||||
case ObtenerTablasBD.JAVA:
|
||||
{
|
||||
vectorTablas = getEstructura(nombresTabla, stmt);
|
||||
break;
|
||||
}
|
||||
case ObtenerTablasBD.XML:
|
||||
{
|
||||
vectorTablas = getEstructura(nombresTabla, stmt);
|
||||
break;
|
||||
}
|
||||
case ObtenerTablasBD.DATOS_XML:
|
||||
{
|
||||
vectorTablas = getValores(nombresTabla, stmt);
|
||||
break;
|
||||
}
|
||||
case ObtenerTablasBD.DOC:
|
||||
{
|
||||
vectorTablas = getEstructura(nombresTabla, stmt);
|
||||
break;
|
||||
}
|
||||
case ObtenerTablasBD.SQL:
|
||||
{
|
||||
vectorTablas = getEstructura(nombresTabla, stmt);
|
||||
break;
|
||||
}
|
||||
case ObtenerTablasBD.HTML:
|
||||
{
|
||||
vectorTablas = getEstructura(nombresTabla, stmt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
System.err.println(e);
|
||||
}
|
||||
|
||||
//devuelvo el vector de tablas
|
||||
vectorTablas.trimToSize();
|
||||
return vectorTablas;
|
||||
}
|
||||
|
||||
|
||||
private Vector getEstructura(String[] nombresTabla, Statement stmt) throws Exception
|
||||
{
|
||||
//Voy a ir recorriendo las tablas de la BD y sus correspondientes campos
|
||||
Tabla tabla;
|
||||
String nombre, nombreOriginal;
|
||||
Vector vectorCampos = null, vectorKeys = null;
|
||||
Vector vectorTablas = new Vector();
|
||||
ResultSet rs = null,rsPKeys = null;
|
||||
ResultSetMetaData rsMetaData = null;
|
||||
Campo campo;
|
||||
|
||||
for (int k=0; k < nombresTabla.length ; k++)
|
||||
{
|
||||
tabla = new Tabla();
|
||||
vectorCampos = new Vector();
|
||||
|
||||
// nombre original de la tabla
|
||||
nombreOriginal = nombresTabla[k];
|
||||
tabla.setNombreOriginal(nombreOriginal);
|
||||
|
||||
//nombre de la tabla / del javabean
|
||||
nombre = UtilidadesGeneradorBD.getNombreTabla( nombreOriginal );
|
||||
tabla.setNombre(nombre);
|
||||
|
||||
|
||||
//Columnas que son clave primaria
|
||||
vectorKeys = new Vector();
|
||||
String[] keyColumns = null;
|
||||
|
||||
StringBuffer queryPKeys = new StringBuffer();
|
||||
queryPKeys.append("SELECT USER_CONS_COLUMNS.COLUMN_NAME");
|
||||
queryPKeys.append(", USER_CONSTRAINTS.CONSTRAINT_NAME");
|
||||
queryPKeys.append(", TAB.TABTYPE");
|
||||
queryPKeys.append(" FROM USER_CONS_COLUMNS, USER_CONSTRAINTS, TAB");
|
||||
queryPKeys.append(" WHERE USER_CONS_COLUMNS.TABLE_NAME = '" +nombreOriginal+ "'");
|
||||
queryPKeys.append(" AND USER_CONSTRAINTS.CONSTRAINT_TYPE = 'P'");
|
||||
queryPKeys.append(" AND USER_CONSTRAINTS.CONSTRAINT_NAME = USER_CONS_COLUMNS.CONSTRAINT_NAME");
|
||||
queryPKeys.append(" AND USER_CONSTRAINTS.TABLE_NAME = TAB.TNAME");
|
||||
queryPKeys.append(" ORDER BY USER_CONS_COLUMNS.POSITION");
|
||||
|
||||
String nombrePKey = "";
|
||||
String tipoTabla = "";
|
||||
|
||||
rsPKeys = stmt.executeQuery(queryPKeys.toString());
|
||||
while(rsPKeys.next())
|
||||
{
|
||||
// vectorKeys.addElement(rsPKeys.getString("COLUMN_NAME"));
|
||||
vectorKeys.addElement(rsPKeys.getString(1));
|
||||
nombrePKey = rsPKeys.getString(2);
|
||||
tipoTabla = rsPKeys.getString(3);
|
||||
}
|
||||
vectorKeys.trimToSize();
|
||||
keyColumns = new String[ vectorKeys.size() ];
|
||||
vectorKeys.copyInto( keyColumns );
|
||||
|
||||
//Tipo de la tabla oracle (tabla o vista)
|
||||
tabla.setTipoTabla(tipoTabla);
|
||||
|
||||
//Tomo todos los campos de esta tabla
|
||||
rs = stmt.executeQuery("SELECT * FROM "+ nombreOriginal );
|
||||
rsMetaData = rs.getMetaData();
|
||||
|
||||
|
||||
//empiezo a recorrer los campos de la tabla
|
||||
for (int i = 1 ; i <= rsMetaData.getColumnCount() ; i++)
|
||||
{
|
||||
campo = new Campo();
|
||||
|
||||
// Nombre original del campo
|
||||
String nombreOriginalCampo = rsMetaData.getColumnName(i);
|
||||
campo.setNombreOriginal( nombreOriginalCampo );
|
||||
|
||||
|
||||
//Nombre del campo (es decir, de la propiedad del bean)
|
||||
campo.setNombre( UtilidadesGeneradorBD.getNombreCampo( nombreOriginalCampo ));
|
||||
|
||||
|
||||
// tipo (java) de campo y largo segun tipo
|
||||
String tipoOracle = rsMetaData.getColumnTypeName(i);
|
||||
tipoOracle.trim();
|
||||
tipoOracle.toUpperCase();
|
||||
|
||||
if( tipoOracle.equals("CHAR"))
|
||||
{
|
||||
campo.setLongitudOracle(String.valueOf(rsMetaData.getColumnDisplaySize(i)));
|
||||
campo.setTipoOracle("CHAR");
|
||||
campo.setTipo("String");
|
||||
campo.setLargo( rsMetaData.getColumnDisplaySize(i) );
|
||||
}
|
||||
else if(tipoOracle.equals("CHARACTER"))
|
||||
{
|
||||
campo.setLongitudOracle(String.valueOf(rsMetaData.getColumnDisplaySize(i)));
|
||||
campo.setTipoOracle("CHARACTER");
|
||||
campo.setTipo("String");
|
||||
campo.setLargo( rsMetaData.getColumnDisplaySize(i) );
|
||||
}
|
||||
else if( tipoOracle.equals("DATE") )
|
||||
{
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("DATE");
|
||||
campo.setTipo("java.sql.Date");
|
||||
campo.setLargo( rsMetaData.getColumnDisplaySize(i) );
|
||||
|
||||
}
|
||||
else if( tipoOracle.equals("LONG") )
|
||||
{
|
||||
//como tipo memo
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("LONG");
|
||||
}
|
||||
else if( tipoOracle.equals("LONG RAW") )
|
||||
{
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("LONG RAW");
|
||||
campo.setTipo("long");
|
||||
}
|
||||
else if( tipoOracle.equals("MLSLABEL") )
|
||||
{
|
||||
//no se que es esto
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("MLSLABEL");
|
||||
}
|
||||
else if( tipoOracle.equals("NUMBER") )
|
||||
{
|
||||
campo.setLongitudOracle(String.valueOf(rsMetaData.getPrecision(i)));
|
||||
if (rsMetaData.getScale(i) > 0)
|
||||
{
|
||||
campo.setLongitudOracle(campo.getLongitudOracle() + "," + String.valueOf(rsMetaData.getScale(i)));
|
||||
}
|
||||
campo.setTipoOracle("NUMBER");
|
||||
// campo.setScale( rsMetaData.getScale(i) );
|
||||
// campo.setPrecision( rsMetaData.getPrecision(i) );
|
||||
if(rsMetaData.getScale(i) != 0)
|
||||
{
|
||||
campo.setTipo("double");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(rsMetaData.getPrecision(i) == 0)
|
||||
{
|
||||
campo.setTipo("double");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(rsMetaData.getPrecision(i) < 10)
|
||||
{
|
||||
campo.setTipo("int");
|
||||
}
|
||||
else
|
||||
{
|
||||
//campo.setTipo("long");
|
||||
campo.setTipo("double");
|
||||
}
|
||||
}
|
||||
}
|
||||
campo.setLargo(rsMetaData.getColumnDisplaySize(i));
|
||||
}
|
||||
else if( tipoOracle.equals("RAW") )
|
||||
{
|
||||
//no se que es esto
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("RAW");
|
||||
}
|
||||
else if( tipoOracle.equals("RAW MLSLABEL") )
|
||||
{
|
||||
//no se que es esto
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("RAW MLSLABEL");
|
||||
}
|
||||
else if( tipoOracle.equals("ROWID") )
|
||||
{
|
||||
//no se que es esto
|
||||
campo.setLongitudOracle("");
|
||||
campo.setTipoOracle("ROWID");
|
||||
}
|
||||
else if(tipoOracle.equals("VARCHAR2"))
|
||||
{
|
||||
campo.setLongitudOracle(String.valueOf(rsMetaData.getColumnDisplaySize(i)));
|
||||
campo.setTipoOracle("VARCHAR2");
|
||||
campo.setTipo("String");
|
||||
campo.setLargo( rsMetaData.getColumnDisplaySize(i) );
|
||||
}
|
||||
else if(tipoOracle.equals("VARCHAR"))
|
||||
{
|
||||
campo.setLongitudOracle(String.valueOf(rsMetaData.getColumnDisplaySize(i)));
|
||||
campo.setTipoOracle("VARCHAR");
|
||||
campo.setTipo("String");
|
||||
campo.setLargo( rsMetaData.getColumnDisplaySize(i) );
|
||||
}
|
||||
|
||||
// Campo requerido o no
|
||||
if( rsMetaData.isNullable(i) == 0)
|
||||
campo.setRequerido( true );
|
||||
else
|
||||
campo.setRequerido( false );
|
||||
|
||||
|
||||
// campo primay key o no
|
||||
for( int j = 0; j < keyColumns.length; j++)
|
||||
{
|
||||
if( (campo.getNombreOriginal()).equals(keyColumns[j]))
|
||||
{
|
||||
campo.setClave( true );
|
||||
campo.setClaveOracle(nombrePKey + " (" + String.valueOf(j+1) + "º)");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// añado el campo al vector de campos
|
||||
vectorCampos.addElement(campo);
|
||||
|
||||
|
||||
}//fin del for de campos
|
||||
|
||||
//añado la tabla al vector de tablas
|
||||
tabla.setCampos(vectorCampos);
|
||||
vectorTablas.addElement(tabla);
|
||||
|
||||
}//fin del for de tablas
|
||||
|
||||
return vectorTablas;
|
||||
}
|
||||
|
||||
private Vector getValores(String[] nombresTabla, Statement stmt) throws Exception
|
||||
{
|
||||
//Voy a ir recorriendo las tablas de la BD y sus correspondientes campos
|
||||
Registro registro;
|
||||
String nombre, nombreOriginal;
|
||||
Vector vectorDatos = null;
|
||||
Vector vectorRegistros = new Vector();
|
||||
Dato dato;
|
||||
String nombreOriginalDato;
|
||||
ResultSet rs = null;
|
||||
ResultSetMetaData rsMetaData = null;
|
||||
String tipoOracle;
|
||||
|
||||
for (int k=0; k < nombresTabla.length ; k++)
|
||||
{
|
||||
// nombre original de la tabla
|
||||
nombreOriginal = nombresTabla[k];
|
||||
|
||||
//Tomo todos los campos de esta tabla
|
||||
rs = stmt.executeQuery("SELECT * FROM " + nombreOriginal );
|
||||
rsMetaData = rs.getMetaData();
|
||||
|
||||
//Empiezo a recorrer los registros de datos de la tabla
|
||||
while(rs.next())
|
||||
{
|
||||
registro = new Registro();
|
||||
vectorDatos = new Vector();
|
||||
|
||||
registro.setNombreOriginal( nombreOriginal );
|
||||
|
||||
//nombre de la tabla / del javabean
|
||||
nombre = UtilidadesGeneradorBD.getNombreTabla( nombreOriginal );
|
||||
registro.setNombre( nombre );
|
||||
|
||||
for(int i = 1; i <= rsMetaData.getColumnCount(); i++)
|
||||
{
|
||||
dato = new Dato();
|
||||
|
||||
nombreOriginalDato = rsMetaData.getColumnName(i);
|
||||
dato.setNombreOriginal( nombreOriginalDato );
|
||||
|
||||
//Nombre del campo (es decir, de la propiedad del bean)
|
||||
dato.setNombre( UtilidadesGeneradorBD.getNombreCampo( nombreOriginalDato ));
|
||||
|
||||
//Valor del campo
|
||||
dato.setValor(rs.getString(i));
|
||||
|
||||
//Tipo(java) de campo
|
||||
tipoOracle = rsMetaData.getColumnTypeName(i).trim().toUpperCase();
|
||||
if( tipoOracle.equals("CHAR") || tipoOracle.equals("CHARACTER") )
|
||||
{
|
||||
dato.setClase("Character");
|
||||
}
|
||||
else if( tipoOracle.equals("DATE") )
|
||||
{
|
||||
dato.setClase("java.sql.Date");
|
||||
dato.setValor(UtilidadesGeneradorBD.formatearFecha((String)dato.getValor()));
|
||||
}
|
||||
else if( tipoOracle.equals("LONG") )
|
||||
{
|
||||
//como tipo memo
|
||||
}
|
||||
else if( tipoOracle.equals("LONG RAW") )
|
||||
{
|
||||
dato.setClase("Long");
|
||||
}
|
||||
else if( tipoOracle.equals("MLSLABEL") )
|
||||
{
|
||||
//no se que es esto
|
||||
}
|
||||
else if( tipoOracle.equals("NUMBER") )
|
||||
{
|
||||
if(rsMetaData.getScale(i) != 0)
|
||||
{
|
||||
dato.setClase("Double");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(rsMetaData.getPrecision(i) == 0)
|
||||
{
|
||||
dato.setClase("Double");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(rsMetaData.getPrecision(i) < 10)
|
||||
{
|
||||
dato.setClase("Integer");
|
||||
}
|
||||
else
|
||||
{
|
||||
//dato.setClase("Long");
|
||||
dato.setClase("Double");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( tipoOracle.equals("RAW") )
|
||||
{
|
||||
//no se que es esto
|
||||
}
|
||||
else if( tipoOracle.equals("RAW MLSLABEL") )
|
||||
{
|
||||
//no se que es esto
|
||||
}
|
||||
else if( tipoOracle.equals("ROWID") )
|
||||
{
|
||||
//no se que es esto
|
||||
}
|
||||
else if( tipoOracle.equals("VARCHAR2") || tipoOracle.equals("VARCHAR"))
|
||||
{
|
||||
dato.setClase("String");
|
||||
}
|
||||
|
||||
// añado el dato al vector de datos
|
||||
vectorDatos.addElement(dato);
|
||||
}//fin del for de registros
|
||||
|
||||
//añado la tabla al vector de registros
|
||||
registro.setDatos(vectorDatos);
|
||||
vectorRegistros.addElement(registro);
|
||||
}
|
||||
|
||||
}//fin del for de tablas
|
||||
|
||||
return vectorRegistros;
|
||||
}
|
||||
|
||||
/**
|
||||
* Accede a la BD y devuelve los nombres de todas las tablas
|
||||
*/
|
||||
public String[] getNombresAllTablasBD()
|
||||
{
|
||||
String[] resultado = null;
|
||||
Vector vectorNombres = new Vector();
|
||||
|
||||
//Busco los nombres de las tablas de la BD
|
||||
Statement stmt;
|
||||
ResultSet rs;
|
||||
try
|
||||
{
|
||||
//tomo los nombres de la tabla
|
||||
stmt = conn.createStatement();
|
||||
// rs = stmt.executeQuery( "SELECT TABLE_NAME FROM USER_TABLES" );
|
||||
rs = stmt.executeQuery( "SELECT TNAME FROM TAB" );
|
||||
while(rs.next())
|
||||
{
|
||||
// vectorNombres.addElement( rs.getString("TABLE_NAME") );
|
||||
vectorNombres.addElement( rs.getString("TNAME") );
|
||||
}
|
||||
|
||||
// Copio los elementos del vector en el array
|
||||
vectorNombres.trimToSize();
|
||||
resultado = new String[ vectorNombres.size() ];
|
||||
vectorNombres.copyInto(resultado);
|
||||
|
||||
}
|
||||
catch(SQLException sqle)
|
||||
{
|
||||
System.err.println( sqle );
|
||||
}
|
||||
|
||||
//devuelvo el resultado
|
||||
return resultado;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user