Pra*_*eep 4 java sql sql-server-2008
我正在使用jTDS API在SQL Server 2008上执行以下sql查询:
SELECT a , b , c FROM [db].[dbo].[table] where d = 1;
Run Code Online (Sandbox Code Playgroud)
这三个字段的数据类型如下:
a -- nvarchar(255)
b -- nvarchar(255)
c -- nvarchar(max)
Run Code Online (Sandbox Code Playgroud)
当我使用Java执行查询时,a和b的字符串值是纯文本,但是对于c我得到以下值:
net.sourceforge.jtds.jdbc.ClobImpl@2b34fb
Run Code Online (Sandbox Code Playgroud)
它似乎存储为对象,如何将其转换为普通字符串?
尝试了由@Roberto Navaron发送的链接,它工作,只是将对象传递给此方法,键入将其转换为clob并返回字符串
private String clobToString(Clob data) {
StringBuilder sb = new StringBuilder();
try {
Reader reader = data.getCharacterStream();
BufferedReader br = new BufferedReader(reader);
String line;
while(null != (line = br.readLine())) {
sb.append(line);
}
br.close();
} catch (SQLException e) {
// handle this exception
} catch (IOException e) {
// handle this exception
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)