我有,我會用它來計算元素存儲從表這個Java對象:從Oracle SQL查詢中獲取引起
private DCDataObj dc;
public class DCDataObj
{
private int datacenter; // Datacenters
.............
public DCDataObj()
{
}
public DCDataObj(int datacenter..........)
{
this.datacenter = datacenter;
..........
}
public int getDatacenter()
{
return datacenter;
}
public void setDatacenter(int datacenter)
{
this.datacenter = datacenter;
}
..........
}
我用這個SQL查詢來算的組件集成到Oracle表:
ps = conn.prepareStatement("SELECT COUNT(1) AS CNT FROM COMPONENTSTATS CS, COMPONENTTYPE CT "
+ " WHERE CS.COMPONENTTYPEID = CT.COMPONENTTYPEID AND CT.COMPONENTTYPEID IN ("
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ? " // 10
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ? " // 20
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ? " // 30
+ " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) " // 40
+ " GROUP BY CT.NAME ORDER BY CT.NAME");
ps.setInt(1, 1000);
......
我得到這個使用Java代碼的結果:
ResultSet result = ps.executeQuery();
while (result.next())
{
dc = new DCDataObj(
result.getInt(1),
result.getInt(2),
result.getInt(3),
...........
);
}
我得到這個問題,當我執行查詢:
java.sql.SQLException: Invalid column index
你能幫我解決這個問題嗎?
UPDATE
The SQL query works. I get this result:
CNT
----------------------
1
1
1 1
我懷疑,這個問題是到返回類型。我想我得到的結果作爲數組。但是,我可以以某種方式將查詢結果插入Java對象而不使用Array?
[值得閱讀](http://oraclequirks.blogspot.in/2008/04/sql-error-ora-01745-invalid-hostbind.html) – 2013-02-26 19:35:39
您的SQL語句返回一個結果集,其中包含兩列「COMPONENT_TYPE '和'CNT'。你是否試圖從結果的第一行中檢索其中一列的值並將其傳遞給你的'DCDataObj'構造函數?如果是這樣,你想要檢索'CNT'嗎?或者'COMPONENT_TYPE'?我的猜測是'CNT'。 – 2013-02-26 19:37:20
是的,我只需要'CNT'。 – 2013-02-26 19:48:59