J'ai une base de données order
avec les champs price
et deposit
réglés sur float. J'implémente aussi un java gui pour chercher la commande, le problème est quand j'essaye de chercher les commandes dans la base de données je ne trouve rien parce qu'il économise le prix = 55.0 quand je convertis de chaîne en flotteur et dans la base de données il enregistre comme 55. Quel est le problème? quel type dois-je utiliser pour représenter la devise des deux côtés, côté java et côté mysql?mysql float type
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try{
//collect arguments
String category = this.jTextField8.getText();
String pattern=this.jTextArea1.getText();
String color=this.jTextArea2.getText();
float price = Float.valueOf(this.jTextField14.getText()).floatValue();
float deposit = Float.valueOf(this.jTextField15.getText()).floatValue();
//create new order
int row=this.customerSelectedRow;
Order newOrder=new order(this.customerModel.dataVector.get(row),category,pattern,color,price,deposit);
newOrder.search();
//refresh
this.jDialogNewOrder.setVisible(false);
}catch(Exception e){
System.err.println (" Error message: " + e.getMessage());
}
}
est ici le code de la méthode de recherche
try {
s = c.conn.prepareStatement("SELECT id FROM `"+this.table+
"` WHERE customerId=? AND category=? and pattern=? and color=? and deposit=? and price=?");
s.setInt(1,this.customer.getId());
s.setString (2, this.category);
s.setString (3, this.pattern);
s.setString (4, this.color);
s.setFloat(5,this.deposit);
s.setFloat(6,this.price);
System.err.println(s.toString());
ResultSet res = s.executeQuery();
System.out.println("printing ids :");
while (res.next()) {
int i = res.getInt(1);
//assigning the correct id to the inserted customer
this.id=i;
System.out.println("id" + "=" + i);
}
} catch (SQLException e) {
System.err.println ("find id Error message: " + e.getMessage());
System.err.println ("find id Error number: " + e.getErrorCode());
Très bonne réponse. :-) –