根据jTDS native type mapping
Character type
char java.lang.String CHAR
varchar java.lang.String VARCHAR
nchar java.lang.String CHAR
nvarchar java.lang.String VARCHAR
unichar java.lang.String CHAR Sybase only
univarchar java.lang.String VARCHAR Sybase only
text java.sql.Clob LONGVARCHAR
ntext java.sql.Clob LONGVARCHAR Microsoft only
由上可见jTDS的text的结果集返回为Clob类型,但在Microsoft JDBC返回结果集为String类型,所以两者不同。
.......Clob clob = rs.getClob(col);
return (clob == null ? null : clob.getSubString(1, (int) clob.length()));....
protected String helper(ResultSet rs, int dataType, int col) {
String retVal = "";
try {
switch (dataType) {...
case Types.Clob:retVal = getClobString(rs,col);break;
}catch(){ ...}finally{return retVal;}}public String getClobString(ResultSet rs, int col) {try {
Reader reader = rs.getCharacterStream(col);
if (reader == null) {
return null;
}
StringBuffer sb = new StringBuffer();
char[] charbuf = new char[4096];
for (int i = reader.read(charbuf); i > 0; i = reader.read(charbuf)) {
sb.append(charbuf, 0, i);
}
return sb.toString();
} catch (Exception e) {return "";
}
}
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=895892
|
- 评论人:六
2006-12-07 16:30:38
|
|||
* 当数据库字段为Text类型时调用
|
||||