1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Class.forName (driver);
Connection conn=null;
conn = DriverManager.getConnection(url, user, pswd);
Statement state = conn.createStatement();
String[] TABLE_TYPES = {"TABLE"};
DatabaseMetaData resultSchema = conn.getMetaData();
ResultSet tables = resultSchema.getTables (conn.getCatalog () , schema, "%", TABLE_TYPES);
while (tables.next())
{
String t =tables.getString("TABLE_NAME");
ResultSet att = resultSchema.getColumns(conn.getCatalog(), schema, t, "%");//pour chercher les attributs de la table
//affichage des informations
ResultSetMetaData rsmd = att.getMetaData();
while(att.next()){
trouv=false;
for(int i=0; i<rsmd.getColumnCount(); i++){
String col = rsmd.getColumnName(i+1);
if(trouv==false)
{
if (col.equals("DATA_TYPE"))//java.sql.types
{
trouv=true;
if(att.getObject(i+1).toString().equals("1111")) //si c'est un type complexe
{
typeSimple=false;
//System.out.println("c'est un type complexe"+ typeSimple);
}
else //si c'est un type simple
{
typeSimple=true;
//System.out.println("c'est un type simple"+ typeSimple);
}
for(int j=0; j<rsmd.getColumnCount(); j++){
String col2 = rsmd.getColumnName(j+1);
if (col2.equals("COLUMN_NAME"))
{
Object val = att.getObject(j+1);
//System.out.println(col2+" = "+val);
//System.out.println("******* typeSimple est à: "+ typeSimple );
if(typeSimple==true)
{
//faire mon traitement
}
else //c.à.d c'est un type complexe
{
//recuperer les noms et les types des sous attributs de ce type complexe
} |
Partager