Récupérer donnée Boolean sur une table

ulysse00 Messages postés 291 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 12 mai 2013 - 3 févr. 2012 à 20:45
 Utilisateur anonyme - 13 févr. 2012 à 23:52
salut
je veux bien récupérer les données d'une table avec un champ booléen mais ça marche pas
la base de donnée oracle
voila comment j'ai crée la table
CREATE TABLE PAIE
(
ETAT NUMBER(1) , CONSTRAINT CHK_PAIE_ETAT_BOOLEAN
CHECK (ETAT IN (0,1))
);

et
le code pour récupérer les donnée dans la table

try {
Connection connection = null;
String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName);
String serverName = "10.133.0.25";
String portNumber = "1521";
String sid = "fin";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber +":" + sid;
String username = "DEVRTO";
String password = "DEVRTO";
connection = DriverManager.getConnection(url, username, password);
Statement instruction = connection.createStatement();
String sql1 =" select paie.* from paie ";
ResultSet resultat = instruction.executeQuery(sql1);
ResultSetMetaData md = resultat .getMetaData();
columns = md.getColumnCount();
for (int id = 1; id < columns+1; id++) {
columnNames.addElement(md.getColumnName(id));
}
int size=0;
while (resultat .next()) {

Vector row = new Vector(columns);

for (int j = 1; j <= columns; j++) {
Object v = resultat .getObject(j);
row.addElement(v);
}
data.addElement(row);
}
tableModel = new DefaultTableModel(data, columnNames) {
public Class getColumnClass(int columnIndex) {
return (columnIndex == 1) ? Boolean.class : String.class;
}



};

jTable = new JTable(tableModel) ;
jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTable.getColumnModel().getColumn(0).setPreferredWidth(80);
jTable.getColumnModel().getColumn(1).setPreferredWidth(200);
jTable.setBackground(Color.orange);
jTable.setIntercellSpacing(new Dimension(2, 1));
jTable.setRowHeight(24);
jTable.setLocation(new Point(2, 0));
jTable.setFont(new Font("Arial", Font.PLAIN, 14));


jTable.setVisible(true);
jScrollPane.setBounds(new Rectangle(90, 130, 643, 389));
jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane.setViewportView( jTable);
}catch (Exception ex) {
System.out.println("mustapha");
ex.printStackTrace() ;
}



java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Boolean

problème avec cette partie

public Class getColumnClass(int columnIndex) {
return (columnIndex == 1) ? Boolean.class : String.class;
}
merci

1 réponse

Utilisateur anonyme
13 févr. 2012 à 23:52
Salut,

Tu n'es pas nouveau sur ce forum donc n'oublie pas d'utiliser les balises pour afficher lisiblement le code.
Sinon, où est levée ton exception ? Dans getColumnClass ?

Le problème d'après le message c'est que tu cherches à caster des double ou des long en boolean, et là ça coince car ces types ont peu de choses en commun. Dis nous où ton exception est levée pour qu'on voit ça. A mon avis tu lis la mauvaise colonne ou alors tu as sauté une étape.


--
Pylouq
0
Rejoignez-nous