Pb de concatenation de chaines

benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 - 16 mai 2003 à 11:51
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 - 16 mai 2003 à 15:21
bonjour a tous,

je recupere au moyen de textfields (methode getText()) 4 strings pour lancer une connection a une bdd:
l utilisateur
le mot d passe
le nom du serveur
le nom de la base

j ai en plus une chaine entete de type : jdbc:postgresql:

je fais ensuite une concatenation (methode concat()) des chaines entete sevreur base afin d obtenir l url de connection
l url que j affiche me semble correcte
mais lorsque j ouvre la connection avec cette url j obtiens une excpetion me disant que l url est erronee

alors d ou le pb peux t il bien venir ? je n en sais rien
j espere que vous avez une idee sur la question et vous en remercie d avance

benohite
:big)

4 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
16 mai 2003 à 14:33
salut,
montres ton code
Duss
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
16 mai 2003 à 14:44
ok donc voici la classe de connection:


public class PostgresConnect
{
String url;
        String user;
        String pass;
Connection con;
Statement stmt;
ResultSet res;

public PostgresConnect(String u, String util, String mot)
{
url=u;
user=util;
pass=mot;
}

public boolean connect()
{
try
{
Class.forName("org.postgresql.Driver");
System.out.println("Drivers charges");
this.con = DriverManager.getConnection(url,user,pass);
System.out.println("Connection etablie: "+con);
return true;
}
catch(ClassNotFoundException e){System.err.println("Chargement drivers echoue\n"+e);return false;}
catch(SQLException evt)
{
System.err.println("==>SQL Exception :\n");
while(evt!=null)
{
System.out.println("Message: "+ evt.getMessage());
System.out.println("SQLState: "+ evt.getSQLState());
System.out.println("ErrorCode: "+ evt.getErrorCode());
evt = evt.getNextException();
System.out.println("");

}
return false;
}
}
public void close()
{
try
{
con.close();
System.out.println("Connection fermee");
}
catch(SQLException evt){System.err.println("Url de connection non valide\n"+evt);}
}
public boolean reqSend(String req)
{
try
{
this.stmt = con.createStatement();
this.res = stmt.executeQuery(req);
return true;
               }
       catch(SQLException evt){System.err.println("Url de connection non valide\n"+evt);return false;}
}
}



et la classe qui fabrique l url (methode faburl)


public class DataConnect
{
public String entete = "jdbc:postgresql:";
public String user;
public String pass;
public String serveur;
public String base;
public String url;

public void setParam(String a,String b,String c,String d)
{
this.user=a;
this.pass=b;
this.serveur=c;
this.base=d;
}

public void fabUrl()
{
String inter = entete.concat(serveur);
this.url = inter.concat(base);

}

public void setEntete(String a)
{
entete=a;
}


je ne pense pas que cela vienne de la concatenation car j ai essaye avec un chaine toute faite et ca ne marche pas non plus mais comble du bizarre j ai une autre classe (Main) qui utilise le meme objet (PostgresConnect) pour se connecte et celle ci fonctionne correctement
bref je ne comprend pas

benohite
:big)
cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
16 mai 2003 à 15:17
salut,
quand tu fais ton :
this.url = inter.concat(base);
tu devrais pas plutot faire un :
this.url = inter.concat(":"+base);
Duss
benohite Messages postés 210 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 18 décembre 2003 7
16 mai 2003 à 15:21
je ne pense pas car la chaine entete se termine par ":" donc je n est pas besoin de les mettre avant

benohite
:big)
Rejoignez-nous