Merci pour tout ce code, mais c'est normal que j'ai pas tout compris... :?
Ce que j'ai reussi à faire moi, c'est recuperer le nom de ma table, recuperer les noms de mes attributs pour chacune des tables. Pour chaque attribut je recupere également son type (int, char, varchar. Dans mon code chaque type correspond à un Id (necessaire pour le reste du programme).
J'ai egalement recuperer la taille pour certains types d'attributs.
Je vous montre mon code, je me doute que c'est pas tres propre, et j'espere que vous comrpendrez toutes les etapes de ma... reflexion :wink:
ligne = br.readLine();
int j=0;
String repereAttribut= " `";
while (ligne.startsWith(repereAttribut)) {
// La ligne commence par " `" : c'est un attribut
System.out.println("Un attribut a été trouvé");
// On enlève les espaces de debut et de fin de ligne
ligne = ligne.trim();
// On recupere le nom de l'attribut qui est compris entre "`" et "` "
repereAttribut="`";
int motifAtt = ligne.indexOf("` ");
String nomAttribut = ligne.substring(repereAttribut.length(), motifAtt);
String repereType ="`"+nomAttribut+"` ";
// On modifie la ligne
ligne = ligne.substring(repereType.length());
int motifType = ligne.indexOf(" ");
// On extrait le type de l'attribut complet
String typeComplet = ligne.substring(0, motifType);
String typeAttribut = typeComplet;
String tailleAttributString = null;
int tailleAttribut = 0;
// On extrait le type de l'attribut
if (typeComplet.endsWith(")")) {
typeAttribut = typeComplet.substring(0, typeComplet.indexOf("("));
String repere = typeAttribut+"(";
tailleAttributString = typeComplet.substring(repere.length(), typeComplet.indexOf(")"));
tailleAttribut = Integer.parseInt(tailleAttributString);
}
// On teste le type de l'attribut pour lui attribuer le numero correspondant
int numeroAttribut= 0;
if (typeAttribut.compareTo("varchar")==0) {
numeroAttribut = 0;
}
if (typeAttribut.compareTo("tinyint")==0) {
numeroAttribut = 1;
}
if (typeAttribut.compareTo("text")==0) {
numeroAttribut = 2;
}
if (typeAttribut.compareTo("date")==0) {
numeroAttribut = 3;
}
if (typeAttribut.compareTo("smallint")==0) {
numeroAttribut = 4;
}
if (typeAttribut.compareTo("mediumint")==0) {
numeroAttribut = 5;
}
if (typeAttribut.compareTo("int")==0) {
numeroAttribut = 6;
}
if (typeAttribut.compareTo("bigint")==0) {
numeroAttribut = 7;
}
if (typeAttribut.compareTo("float")==0) {
numeroAttribut = 8;
}
if (typeAttribut.compareTo("double")==0) {
numeroAttribut = 9;
}
if (typeAttribut.compareTo("decimal")==0) {
numeroAttribut = 10;
}
if (typeAttribut.compareTo("datetime")==0) {
numeroAttribut = 11;
}
if (typeAttribut.compareTo("timestamp")==0) {
numeroAttribut = 12;
}
if (typeAttribut.compareTo("time")==0) {
numeroAttribut = 13;
}
if (typeAttribut.compareTo("year")==0) {
numeroAttribut = 14;
}
if (typeAttribut.compareTo("char")==0) {
numeroAttribut = 15;
}
if (typeAttribut.compareTo("tinyblob")==0) {
numeroAttribut = 16;
}
if (typeAttribut.compareTo("tinytext")==0) {
numeroAttribut = 17;
}
if (typeAttribut.compareTo("blob")==0) {
numeroAttribut = 18;
}
if (typeAttribut.compareTo("mediumblob")==0) {
numeroAttribut = 19;
}
if (typeAttribut.compareTo("mediumtext")==0) {
numeroAttribut = 20;
}
if (typeAttribut.compareTo("longblob")==0) {
numeroAttribut = 21;
}
if (typeAttribut.compareTo("longtext")==0) {
numeroAttribut = 22;
}
System.out.println("Nom de l'attribut : " + nomAttribut);
//System.out.println("Type complet de l'attribut : " + typeComplet);
System.out.println("Type de l'attribut : " + typeAttribut);
System.out.println("Numero de l'attribut : " + numeroAttribut);
System.out.println("Taille de l'attribut : " + tailleAttribut);
j++;
Voilà :oops:
Maintenant j'arrive au probleme d'extraire le NULL ou NOT NULL.
Et c'est là que je comprend pas tout.
Merci pour tout ce code, mais c'est normal que j'ai pas tout compris... :?
Ce que j'ai reussi à faire moi, c'est recuperer le nom de ma table, recuperer les noms de mes attributs pour chacune des tables. Pour chaque attribut je recupere également son type (int, char, varchar. Dans mon code chaque type correspond à un Id (necessaire pour le reste du programme).
J'ai egalement recuperer la taille pour certains types d'attributs.
Je vous montre mon code, je me doute que c'est pas tres propre, et j'espere que vous comrpendrez toutes les etapes de ma... reflexion :wink:
Voilà :oops:
Maintenant j'arrive au probleme d'extraire le NULL ou NOT NULL.
Et c'est là que je comprend pas tout.