我有一张桌子。该表格列为'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);
}
}
答案 0 :(得分:0)
如果您正在讨论用于BLOB结构的text
数据类型,可以试试这个:
java.sql.Blob ablob = rs.getBlob(i + 1);
row[i] = new String(ablob.getBytes(1L, (int) ablob.length()));
奇怪字符的原因是数据库将其存储为原始字节而不是您期望的字符。