我有桌子该表具有列'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/