2010-11-22 18 views
1

Sqlite with Java'yi SQLiteJDBC kullanarak kullanıyorum. sqlite sorgulama, ben öğrendim bu iki dönüş farklı şeyler:Java + sqlite Dize alanı için alan Dize

String str = result.getDouble("field_name").toString(); 
String str = result.getString("field_name"); 

ikincisi dolaylı sqlite içinde GERÇEK numarasının rakamı yukarı yuvarlar ve String dönüştürür. Eski, yuvarlak şeyi yapmaz. Bu bir sqlite JDBC uygulamasının bir hatası mıdır, yoksa bu SQL sorgularında genel bir anlam taşır mı?

+0

BTW, "REAL number" ile ne demek istiyorsunuz? Sonunda dizeye dönüştürülmeden önce tamsayıya dönüştürülüyor mu? –

+0

sqlite'ın veri türü güvenli değildir ve sql standardına uygun değildir. Bu bir * lite * veritabanı olduğu için kasıtlıdır. –

+1

@Adeel Ansari: REAL, bunun yerine DOUBLE veya FLOAT olmayan bir SQLite veri türüdür. –

cevap

2

Hayır, kesinlikle bir hata değil. Eskide, Double sınıfının toString() yöntemine başvurulur. Oysa, ikinci durumda, SQLLite uygulaması çalışıyor.

+0

+1: SQLite ve Java, IEEE çift kesinlikli şamandıralar ve dizgiler arasında dönüştürme yapmak için farklı bir koda sahiptir ve bu, doğru olması için * çok * zor bir işlemdir. –

+0

Teşekkürler. Yani, bir String oluşturmak için REAL değerini kesen JDBC'nin SQLite uygulaması doğru mu? –

+0

@Felix: Evet, kesinlikle. :) –