[英]java how retrieve data from database
我有代碼
public static String getData(String query) {
String output = "";
try {
String connectionUrl = "jdbc:sqlserver://localhost:1234;databaseName=123;user=123;password=123";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(connectionUrl);
String SQL = "select smth from tableName where smth";
stmt = con.createStatement();
rs = stmt.executeQuery(query);
while (rs.next()) {
output = (String) rs.getObject(1);
}
rs.close();
}
catch (Exception e) {
return "ERROR while retrieving data: " + e.getMessage();
}
return output;
}
如果value是string,它可以工作。 但如果它是整數? 還是布爾? 如何修改這個方法,以便它是通用的,無論我得到什么類型的數據,我仍然將其作為字符串返回?
首先在ResultSet rs中檢索結果,然后你可以編寫如下代碼。
您可以檢查對象的實例,然后分配值。
String str;
Object obj = (Object)rs.getObject(1);
if(obj instanceof String){
//do you work here for string like below
str=(String)obj;
}
else if (obj instanceof Integer){
//do your work for Integer
}
//你可以為其他類型做同樣的事情
在這一行
output = (String) rs.getObject(1);
如果字符串然后使用
output = rs.getString(1);
如果是int
output = rs.getInt(1);
點擊oracle獲取更多信息
如果不使用ResultSetMetaData類來獲取列類型,則無法准確地執行此操作。
根據列的類型獲取列數據。
您從結果集中獲取值,假設它始終是String並嘗試對Object實例進行類型轉換。 您應該根據類型使用檢索方法。 大多數情況下,我們將知道從中重試數據的列值的數據類型。 您可以根據列的類型編寫程序。 這就是為什么ResultSet API為每種數據類型都有一個方法。
For String
rs.getString(1);
For Int
rs.getInt(1)
請閱讀ResultSet的文檔
while (rs.next())
{
String[] data;
data = new String[100];
data[i] = rs.getString("smth");
i = i + 1;
}
試試這個你在數組中得到你的數據..使用數組而不是對象。
toString()怎么樣?
while (rs.next()) {
output = rs.getObject(1).toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.