我正在學習如何使用SQLData並將問題轉換回我的對象。Java SQLData - 使用列表/數組投影到用戶對象?
我的Oracle類型看起來是這樣的:
CREATE OR REPLACE TYPE activities_t AS OBJECT
(
list activity_list_t;
);
CREATE OR REPLACE TYPE activity_list_t AS TABLE OF activity_t;
CREATE OR REPLACE TYPE activity_t AS OBJECT
(
startDate DATE;
endDate DATE;
);
而且我的Java是這樣的:
public class Activities implements SQLData {
private String sqlType = "ACTIVITIES_T";
List<Activity> list;
// must have default ctor!
public Activities() {
}
public String getSQLTypeName() throws SQLException
{
return sqlType;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public void readSQL(SQLInput stream, String typeName) throws SQLException
{
Array a = stream.readArray();
// :(
}
public void writeSQL(SQLOutput stream) throws SQLException
{
// stream.writeArray(this.list);
}
}
我試過在readSQL了一些東西,但我沒有太多的成功 - 我錯過了什麼?
我打電話其中有 「activities_t」 的OUT參數PLSQL存儲過程使用JDBC:
Map map = connection.getTypeMap();
map.put("ACTIVITIES_T", Class.forName("Activities"));
connection.setTypeMap(map);
callableStatement = connection.prepareCall("{call GET_ACTIVITIES(?)}");
callableStatement.execute();
謝謝! 史蒂夫
(最上面是從內存中的代碼是在工作中......)
謝謝,一旦我解決了問題,我錯過了其他類型映射我最終得到了類似的東西:) – Steve 2014-09-04 03:20:28
感謝您的答案,但writeSQL實現呢?我無法找到將List轉換爲java.sql.Array的正確方法。 – 2016-10-17 10:29:42
@DmitryAvgustis:怎麼樣[這個問題](http://stackoverflow.com/questions/11439543)? – 2016-10-18 21:16:27