如何从sql java中检索文本列?

时间:2012-03-12 09:11:53

标签: java sql string netbeans

我有一张桌子。该表格列为'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);
      }
   }

1 个答案:

答案 0 :(得分:0)

如果您正在讨论用于BLOB结构的text数据类型,可以试试这个:

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

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