我有桌子该表具有列'Column1',其类型为'text'

如何检索文本并将其存储为字符串?

以下是我尝试过的。 (但是它不起作用,我返回的是奇怪的字符,而不是数据库中的数据)

   public void getConfigurationXML()
   {
       try
       {
           Class.forName("java.sql.Driver");
           Connection conn=(Connection)DriverManager.getConnection(_url,_user,_pwd);
           Statement st=conn.createStatement();

           ArrayList <String[]> result = new ArrayList<String[]>();
           String query ="SELECT Column1 FROM table1";
           ResultSet rs=st.executeQuery(query);
           int columnCount = rs.getMetaData().getColumnCount();

           while(rs.next())
           {
               String[] row = new String[columnCount];
               for (int i=0; i <columnCount ; i++)
               {
                   row[i] = rs.getString(i + 1);
               }
               result.add(row);
           }

           rs.close();
           st.close();
           conn.close();

      }
      catch(Exception e)
      {
           Logger lgr = Logger.getLogger(Database.class.getName());
           lgr.log(Level.WARNING, e.getMessage(), e);
      }
   }

最佳答案

如果您在谈论用于BLOB结构的text数据类型,则可以尝试以下操作:

java.sql.Blob ablob = rs.getBlob(i + 1);
row[i] = new String(ablob.getBytes(1L, (int) ablob.length()));


字符怪异的原因是数据库将其存储为原始字节,而不是您期望的字符。

关于java - 如何从SQL Java检索文本列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9664272/

10-09 03:59