जहां तक मुझे पता है, आप केवल getString()
का उपयोग कर सकते हैं यदि आप जावा स्ट्रिंग ऑब्जेक्ट में परिणाम चाहते हैं। मुझे लगता है कि MySQL ड्राइवर getXXX()
के माध्यम से निर्दिष्ट जो भी जावा ऑब्जेक्ट में बाइट स्ट्रीम को deserializing का ख्याल रखता है।
DROP TABLE IF EXISTS thing;
CREATE TABLE thing (
a_int int,
a_string text,
a_date date
);
INSERT INTO thing (a_int, a_string, a_date)
VALUES ('1234', 'Hello world', CURRENT_DATE());
और कोड:
public static void main(String[] args) throws Exception {
MysqlDataSource db = new MysqlDataSource();
db.setDatabaseName("test");
Connection conn = db.getConnection("test", "test");
ResultSet res = conn.prepareStatement("SELECT * FROM thing").executeQuery();
res.next();
System.out.println("Get a int as a string: " + res.getString("a_int"));
}
यह बस प्रिंट Get a int as a string: 1234
निम्नलिखित init स्क्रिप्ट को देखते हुए। आप जावा int
के रूप में a_date
कॉलम भी प्राप्त कर सकते हैं, और यह मेरी मशीन पर 2013
में परिवर्तित हो गया है। तो ऐसा लगता है कि बाध्यकारी के बाद होता है ड्राइवर ने सर्वर से बाइट्स की एक अनियमित धारा पुनर्प्राप्त की है। कभी-कभी रूपांतरण विफल रहता है, उदाहरण के लिए यदि आप पर TEXT
कॉलम पर आज़माएं।
'getXXX()। ToString()' काम नहीं है? – deadlock
@deadlock - 'getXXX' विधियों के क्लस्टर के लिए समानार्थी है (getDate, getBytes, getFloat आदि)। यह एक वास्तविक विधि नहीं है और ओपी विशिष्ट प्राप्त विधियों का उपयोग करने के विकल्पों के बारे में पूछ रहा है जब वह अंतर्निहित प्रकार को नहीं जानता है। – Perception
हां यह हो सकता है लेकिन फिर मैं पहले से ही xxx को जानना चाहता हूं ... उस प्रयास को सहेजना चाहता हूं। – Vini