2013-03-21 58 views
0

如何使用Java從postgres數據庫獲取inet數據類型?我曾嘗試:使用Java從postgreSQL檢索inet數據類型?

ResultSet foo = // query goes here // 
foo.getString("loopback"); 

但它拋出一個SQL例外,「無效的列名,」當我做。 AFAIK沒有對應於Java中的postgres inet的數據類型。我能做什麼?

+1

*「但它會引發SQL異常,當我這樣做。」*哪一個? – cdhowie 2013-03-21 16:25:05

+0

我覺得啞巴。我甚至沒有檢查過。它會拋出「無效的列名」 – 2013-03-21 16:31:23

+1

也請粘貼您的查詢和任何引用的表格模式。 – cdhowie 2013-03-21 16:32:20

回答

2

張貼在迴應克里斯·特拉弗斯

我原來的查詢:

//Query returning the set of devices in a given market 
    String stm ="SELECT device " 
       "FROM mopdb.devices d " + 
       "INNER JOIN mopdb.markets m " + 
       "ON (d.market_id = m.market_id) " + 
       "WHERE (m.short = ?) " + 
       "ORDER BY d.device_id "; 

「設備」,在設備表由幾列,其中包括回送和OOB,這是(明顯)的IP地址(IPv4,要清楚)。

這是在其中我走ResultSet和建立一個新的「設備」對象

ResultSet d = DBUtilities.getDevicesFromMarket(m.toString()); 
    while(d.next()) { 
     String loopback, oob; 
     Device deviceName = new Device(d.getString("device"), 
       (DBInet.valueOf(d.getString("loopback"))), 
       (DBInet.valueOf(oob = d.getString("oob"))), 
       d.getString("traffic_type"), d.getString("clli"), 
       d.getString("rack"), d.getInt("market_id"), 
       d.getString("codebase")); 
     model.addElement(deviceName); 
    } 

DBInet.valueOf是打開一個PostgreSQL INET數據類型的字符串表示成DBInet對象的靜態方法中的線; java.net.InetAddress的包裝類。

問題是我只是從設備表中選擇「設備」列。以下是按預期工作的查詢。

//Query returning the set of devices in a given market 
    String stm ="SELECT * " + 
       "FROM mopdb.devices d " + 
       "INNER JOIN mopdb.markets m " + 
       "ON (d.market_id = m.market_id) " + 
       "WHERE (m.short = ?) " + 
       "ORDER BY d.device_id "; 
相關問題