2
让我们说我有一个名为ABC的表,其中包含DB2中的2列id(number),content(xml)。如何使用jdbc从db2读取xml列
String q="select * from ABC where id=121";
Connection conn = getConnection(dbUrl,schemaName,userName,password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(q);
while(rs.next())
{
//HERE HOW CAN I GET CONTENT COLUMN VALUE IN STRING FORMAT
}
我试图rs.getObject(I),rs.getString(i)和rs.getSQLXML(I).getString(),但没有运气......我只需要DB2解决方案
我有固定的我自己:
String q="select * from ABC where id=121";
Connection conn = getConnection(dbUrl,schemaName,userName,password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(q);
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next())
{
if(rsmd.getColumnTypeName(i).equalsIgnoreCase("XML"))
{
convertInStreamToString(rs.getBinaryStream(i));
}
else
{
rs.getObject(i);
}
}
private String convertInStreamToString(InputStream data) throws Exception
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while ((n=data.read(buf))>=0)
{
baos.write(buf, 0, n);
}
data.close();
byte[] bytes = baos.toByteArray();
return new String(bytes);
}
希望这有助于...
我修好了我的自我 – sanumala 2010-12-15 16:06:09