Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incapable d'écrire dans ma Base de donnée

utilise PostgreSQL et Java

Sujet résolu
16 avril 2010 à 3:05:53

Bon voila mon problème.

J'arrive à lire dans ma BD sans problème mais pour ce qui est d'écrire tout galère.

Voilà ce que j'ai écrit comme commande.

prenom = textFieldPrenom.getText();
nom = textFieldNom.getText();
if (radioBouttonFemme.isSelected())
{
	sexe = 'F';
}
else if (radioBouttonHomme.isSelected())
{
	sexe = 'M';
}
else sexe = 'U';
adresse = textFieldAdresse.getText();
ville = textFieldVille.getText();
province = textFieldProvince.getText();
codePostal = formattedTextFieldCodePostal.getText();
email = textFieldEmail.getText();
telephone = formattedTextFieldTelephone.getText();
cellulaire = formattedTextFieldCellulaire.getText();
if (radioButtonOrdinaire.isSelected())
{
	typeDeTarif = "Ordinaire";
}
else if (radioButtonBronze.isSelected())
{
	typeDeTarif = "Bronze";
}
else if (radioButtonArgent.isSelected())
{
	typeDeTarif = "Argent";
}
else if (radioButtonOr.isSelected())
{
	typeDeTarif = "Or";
}
else typeDeTarif = "Non-connus";
				
System.out.println (prenom);
System.out.println (nom);
System.out.println (sexe);
System.out.println (adresse);
System.out.println (ville);
System.out.println (province);
System.out.println (codePostal);
System.out.println (email);
System.out.println (telephone);
System.out.println (cellulaire);

try 
{
	Class.forName("org.postgresql.Driver");
	System.out.println("DRIVER OK ! ");
					
	String url = "jdbc:postgresql://localhost:5432/Entreprise";
	String user = "postgres";
	String passwd = "motdepasse";
					
	Connection conn = DriverManager.getConnection(url, user, passwd);
	System.out.println("Connection effective !");
					
	Statement state = conn.createStatement();
	try
        {
	state.executeUpdate("INSERT INTO Client (client_prenom, client_nom, client_sexe, client_adresse, client_ville, client_province, client_codePostal, client_email, client_telephone, client_cellulaire, client_typeDeTarif) VALUES('" + prenom + "', '" + nom + "', '" + sexe + "', '" + adresse + "', '" + ville + "', '" + province + "', '" + codePostal + "', '" + email + "', '" + telephone + "', '" + cellulaire + "', '" + typeDeTarif + "')"); 

		state.close();
	        conn.close();
      	}
			    catch (Exception e)
			    {
			        e.printStackTrace();
			    }
								
				
} catch (Exception e) 
{
	e.printStackTrace();
}


Ensuite voici le nom des champs de ma BD :
ex: nom de la colonne -> Type

client_id -> serial
client_prenom -> text
client_nom -> text
client_sexe -> text
client_adresse -> text
client_ville -> text
client_province -> text
client_codePostal -> text
client_email -> text
client_telephone -> text
client_cellulaire -> text
client_typeDeTarif -> text

Mon but est de faire un formulaire de nouveau client, tous les variables sont définie par des JTextField ou des JFormattedTextField (Fonctionne tous déjà vérifié) et de les envoyer dans ma base de données.

Voici l'erreur:

org.postgresql.util.PSQLException: ERREUR: la relation « client » n'existe pas
  Position : 13
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:299)
    at ajoutClientFenetre$2.actionPerformed(ajoutClientFenetre.java:345)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6263)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3255)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2475)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)





Solution trouvé plus tôt Merci quand même

Voilà la solution pour les intéressé:

Dans la base de donnée le nom de la table et les colonnes doivent commencer par une minuscule alors client au lieu de Client et codepostal au lieu de codePostal


  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 avril 2010 à 7:46:37

postgres ça remonte à loin, mais je crois qu'il vaut mieux éviter les nom de table avec un majuscule.
  • Partager sur Facebook
  • Partager sur Twitter
8 septembre 2015 à 10:50:54

Franchement merci pour la solution. ça me prenait les nerfs déjà. Merci guilh22 !!!
  • Partager sur Facebook
  • Partager sur Twitter
8 juillet 2016 à 3:13:05

merci beaucoup pour avoir publier la solution, j'ai rencontrée le même et grâce à vous j'ai pu le corriger :)
  • Partager sur Facebook
  • Partager sur Twitter
9 septembre 2016 à 12:02:58

Merci encore pour la solution. J'étais déjà un peu à bout.
  • Partager sur Facebook
  • Partager sur Twitter
Joel_Wamek
12 juillet 2019 à 1:41:03

sacree majuscule !!! merci encore

  • Partager sur Facebook
  • Partager sur Twitter
Staff 12 juillet 2019 à 13:12:37

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

-
Edité par AbcAbc6 12 juillet 2019 à 13:15:42

  • Partager sur Facebook
  • Partager sur Twitter