[英]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.