2015-04-21 3 views
1

Je travaille sur une application Java bat dans lequel je suis en train de mettre à jour la base de données PostgreSQL lorsque l'utilisateur fait des changements.
Il y a quatre champs dans les tables, Si je tente de mettre à jour une colonne à la fois, il fonctionne très bien, mais quand je l'utilise AND puis l'afficher message d'erreur meImpossible de mettre à jour la valeur dans la base de données en utilisant l'opérateur AND dans postgresql

Caught Exception:- org.postgresql.util.PSQLException: ERROR: argument of AND must be type boolean, not type character varying

Ci-dessous est le code que je m en utilisant pour mettre à jour la table.

Connection con = DbConnection.getConnect(); 
Statement stmt = con.createStatement(); 
String sql = "UPDATE webservice_config set product = ? AND product_cat = ? AND stock = ? where ID=?;"; 
PreparedStatement pstInsert = con.prepareStatement(sql); 
pstInsert.setString(1, product); 
pstInsert.setString(2, productCat); 
pstInsert.setString(3, stock); 
pstInsert.setString(4, "1"); 
pstInsert.executeUpdate(); 
con.close(); 

Toute aide

+0

devrait être '" Mettre à Jour webservice_config produit mis =? , product_cat =? , stock =? où ID = ?; ";' –

+0

@vivek Id est ici pstInsert.setString (4, "1"); – Luffy

+0

@vivek Merci, oui ET crée un problème ici Merci pour votre aide – Luffy

Répondre

5

Quand effectuer UPDATE sur une table avec plus d'une colonne vous devez utiliser , pour séparer chaque colonne au lieu de l'opérateur AND, donc votre code devrait ressembler à ceci:

String sql = "UPDATE webservice_config set product = ?,product_cat = ?,stock = ? where ID=?;"; 

PostgreSQL Documentation : SQL-UPDATE

L'opérateur ET affiche un enregistrement si la première condition à la fois ET la deuxième condition est vraie