Ajouter un commentaire

melie

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.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 Y   Y  K  K  V     V  III  FFFF 
Y Y K K V V I F
Y KK V V I FFF
Y K K V V I F
Y K K V III F