У меня есть строка запроса, которая является динамической.Элементы, которые я ищу в базе данных, основаны на том, что пользователь выбирает в флажке в HTML-форме.Пользователь выбирает название города из выпадающего списка.Затем пользователь может выбрать один из 3 атрибутов города: CountryCode (int), District (String) и Population (int).
У меня нет проблем при создании запроса.Например, если пользователь выбирает Талсу и выбирает Район и Население, то queryString SELECT District, Population FROM City WHERE name ='Tulsa'
не создает проблем.В другом примере, если пользователь просто выбрал код страны Tulsa, созданная строка запроса будет иметь вид SELECT CountryCode FROM City WHERE name ='Tulsa'
.
. Проблема заключается в анализе данных и их аккуратном отображении на экране.Я не программист базы данных, поэтому мне тяжело.Вот небольшой фрагмент моего кода, чтобы вы могли видеть, что я делаю.
Единственное, что я могу сделать правильно, - это если пользователь выберет Район и Население.Любой другой выбор не работает.Я в основном жестко кодирую район и население.Я не уверен, как анализировать это динамически.Вот кодСтрока запроса 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 );
}
Надеюсь, вы, ребята, понимаете, о чем я спрашиваю.Большое спасибо за помощь!