如何将BLOB数据(例如:136948 a98 e67)从DB2检索到JSON格式/使用java的字符串

jv4diomz  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(197)

我能够获取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);
           
        }
k5hmc34c

k5hmc34c1#

考虑使用BSON2JSON(文档:(第10页)

String q= "select SYSTOOLS.BSON2JSON(COLUMN_NAME) from TABLE_TEST";

相关问题