2010-08-17 18 views

cevap

10

zaten söyledi: Sürücü bu SAYISI (BigInteger eşlenmiş olabilir) (38)

olarak tanımlanan Ama ya sürücü haritalar öğrenmek oldukça kolaydır olsa bile, BigDecimal için her şeyi eşler. ResultSet'in sütununda bir getObject() yapın ve sürücünün hangi sınıfı oluşturduğunu görün. gibi

şey: Sen düşünürdüm

 
ResultSet rs = statement.executeQuery("select the_number_column from the_table"); 
if (rs.next()) 
{ 
    Object o = rs.getObject(1); 
    System.out.println("Class: " + o.getClass().getName()); 
}
1

Biraz zaman geçti, ama Java'da BIGINT olduğuna inanıyorum. BigDecimal. Karşılaştığınız classcastexception, bir ipucu vereceğini hatırlıyorum ...

+0

'ClassCastException' yardımcı olacağını, ancak bu durumda, biz sorguyu yürütmek için Hibernate kullanmak ve yöntem' Nesnesi' döndürür. –

+0

http://stackoverflow.com/questions/3504751/what-object-type-does-spring-hibernate-template-execute-method-return-for-a-count adresinde, özel durumumuza daha spesifik bir soru soruyorum Spring Hibernate Template kullanan. –

2

the Oracle documentation'a göre java.math.BigDecimal.


Eğer oracle.sql.NUMBER kullanarak denediniz "ama BigDecimal benim dökme bir ClassCastException atar"? başkaları gibi

+0

Ben de öyle düşündüm, ama 'BigDecimal' için benim cast 'ClassCastException' atar. –

+0

Bu tabloya göre, Oracle veri türü her zaman "NUMERIC" olsa da, JDBC veri türü "INTEGER" veya "SMALLINT" için "int" olan temel SQL veri türüne bağlıdır. –

+0

Bulmak için türü incelerim. –