我能够获取BLOB并将其转换为字符串,但也会显示特殊字符或控制字符。
例如这是输出-
“业务数据”公司名称公司名称公司名称公司名称公司标识公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称公司名称注册表项
基本上,我尝试从DB2主机中的表中检索/读取数据,列“COLUMN_NAME”被设置为BLOB数据类型。
下面是我想要的代码片段:
String q= "select COLUMN_NAME from TABLE_TEST";
PreparedStatement pstate = null;
PreparedStatement p = null;
Properties props = new Properties();
props.setProperty("useJDBC4ColumnNameAndLabelSemantics", "2");
// props.setProperty("DB2BaseDataSource.NO", "2");
props.setProperty("user", "******");
props.setProperty("password", "*****");
//PreparedStatement pstate1 = null;
ResultSet res=null;
Connection connection = null;
try {
Class.forName(jdbcClassName);
System.out.println("DB2 driver is loaded successfull \n");
connection = DriverManager.getConnection(url, props);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(connection!=null){
System.out.println("Connected successfully.\n");
pstate=connection.prepareStatement(q);
res = pstate.executeQuery();
while(res.next())
{
String payl = res.getString("COLUMN_NAME");
byte [] Blob;
Blob pay1 = res.getBlob("COLUMN_NAME");
InputStream in = pay1.getBinaryStream();
Reader reader1 = new InputStreamReader(in, StandardCharsets.UTF_8);
JsonReader reader2 = new JsonReader(reader1);
reader2.setLenient(true);
JsonElement out = JsonParser.parseReader(reader2);
System.out.println(out);
}
1条答案
按热度按时间k5hmc34c1#
考虑使用BSON2JSON(文档:(第10页)