【发布时间】:2019-09-05 10:30:07
【问题描述】:
嗨,我使用 springjdbc 在 oracle 中调用存储过程。我有存储过程和我的输出属性自定义 udt 对象。在我的 java 代码中,我想将此类型作为 java 类为此我创建我的自定义类并实现 SQLData 和它有效。但我的问题是,如果数据库中的 udt 属性顺序发生变化 就像在第一种情况下,城市是我在udt中的第3个参数,状态是第4个。我的java类是相同的顺序,但我只切换参数顺序并且时间值设置错误(城市值到状态,状态值到城市集) 有没有办法控制这种顺序混乱。
> CREATE TYPE ADDRESS (
> NUM INTEGER, (1)
> STREET VARCHAR(40),(2)
> CITY VARCHAR(40),(3)
> STATE VARCHAR(2),(4)
>
ZIP CHAR(5) (5) );
public class Address implements SQLData {
public int num;
public String street;
public String city;
public String state;
public String zip;
private String sql_type;
public String getSQLTypeName() {
return sql_type;
}
public void readSQL(SQLInput stream, String type)
throws SQLException {
sql_type = type;
num = stream.readInt();
street = stream.readString();
city = stream.readString();
state = stream.readString();
zip = stream.readString();
}
public void writeSQL(SQLOutput stream)
throws SQLException {
stream.writeInt(num);
stream.writeString(street);
stream.writeString(city);
stream.writeString(state);
stream.writeString(zip);
}
}
【问题讨论】:
标签: java oracle jdbc spring-jdbc