gpt4 book ai didi

Java - 无法解析从数据库返回的数据

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:39 25 4
gpt4 key购买 nike

我有一个动态的查询字符串。我在数据库中搜索的项目基于用户在 html 表单的复选框中选择的内容。用户类型从下拉列表中选择一个城市名称。然后用户可以从城市的 3 个不同属性中进行选择:CountryCode(int)、District(String) 和 Population(int)。

创建查询没有问题。例如,如果用户选择 Tulsa 并选择 District 和 Population queryString SELECT District, Population FROM City WHERE name ='Tulsa' 是没有问题的。再举一个例子,如果用户只是选择了 Tulsa 的国家代码,那么创建的查询字符串将是 SELECT CountryCode FROM City WHERE name ='Tulsa'

问题在于解析数据并将其整齐地显示到屏幕上。我不是数据库程序员,所以我过得很艰难。这是我的代码的一小部分,因此您可以看到我在做什么。

我唯一能做对的是用户选择 District and Population。任何其他选择都不起作用。我基本上是硬编码地区和人口。我不确定如何动态解析它。这是代码。查询字符串是 SELECT District, Population FROM City WHERE name ='Tulsa'。这是我唯一可以上类的地方。

public String getData( String c)
{

String query = c;
ResultSet rs = null;
StringBuffer back = new StringBuffer();

try
{
rs = st.executeQuery(c);
ResultSetMetaData rsmd = rs.getMetaData();

int numColumns = rsmd.getColumnCount();
back.append( "number of columns is " + numColumns);
back.append( "</br>");

back.append( "<table border=\"10\" >\n" );
while(rs.next())
{
if(rsmd.getColumnTypeName(1).equals("CHAR"))
back.append("<tr><td>" + rsmd.getColumnName(1) + "</td>" + "<td>" + rs.getString(1) + "</trd</tr>");

if(rsmd.getColumnTypeName(2).equals("INT"))
back.append("<tr><td>" + rsmd.getColumnName(2) + "</td>" + "<td>" + Integer.toString(rs.getInt(2)) + "</td></tr>");

}
back.append( "</table>" );
}
catch( SQLException e )
{
back.append( "<h6>something bad is happening</h6>");
e.printStackTrace();
return null;
}
return new String( back );
}

我希望你们明白我在问什么。非常感谢您的帮助!

最佳答案

如果您只想输出数据,您可以使用 ResultSet.getString(index) 将所有内容作为 String 获取,因为您知道列数来自您的元数据。

while(rs.next())
{
for (int i = 1; i <= numColumns; i++)
{
back.append("<tr><td>" + rsmd.getColumnName(i) +
"</td>" + "<td>" + rs.getString(i) + "</trd</tr>");
}
}

关于Java - 无法解析从数据库返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5264507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com