Я использую JSP для приложения для колледжа. В соответствии с JSP существует подключение к базе данных, из которой я должен получить информацию и отобразить ее в раскрывающемся списке, чтобы пользователь мог выбрать один вариант, чтобы продолжить регистрационную форму. Я могу без проблем подключиться к БД и вывести информацию в раскрывающемся списке, но он получает только самую первую строку, которая была введена в базу данных.
String[] course_codes = dbclass.SelectRow("SELECT DISTINCT Course_code FROM Stream ;");
%><form action="successtwo.jsp">
<label>Select Course code</label>
<select name="stream">
<%for(String course_code: course_codes){
out.println("<option value="+course_code+">"+course_code+"</option>");
}%>
</select><br>
Так что я сделал что-то вроде этого, но я также сделал это.
String[] course_codes = dbclass.SelectRow("SELECT DISTINCT Course_code FROM Stream ;");
%><form action="successtwo.jsp">
<label>Select Course code</label>
<select name="stream">
<%for(String course_code: course_codes){%>
<option value="<%=course_code%>"><%=course_code%></option>
<%}%>
</select><br>
В базе данных есть более одного Course_code, а также может появиться один и тот же Course_code, поэтому я использую разные. Вот dbClass.java, где находится метод SelectRow.
public String[] SelectRow(String SQLquery)
{
String Result[];
// Send an SQL query to a database and return the *single column* result in an array of strings
try {// Make connection to database
statementObject = connectionObject.createStatement();
ResultSet statementResult = statementObject.executeQuery(SQLquery); //Should connection be left open?
ResultSetMetaData rsmd = statementResult.getMetaData();
int nrOfColumns = rsmd.getColumnCount();
Result = new String[nrOfColumns];
statementResult.next();
int currentCounter = 0;
while (currentCounter<nrOfColumns) // While there are rows to process
{
// Get the first cell in the current row
Result[currentCounter] = statementResult.getString(currentCounter+1);
currentCounter++;
}
// Close the link to the database when finished
} catch (Exception e) {
System.err.println("Select problems with SQL " + SQLquery);
System.err.println("Select problem is " + e.getMessage());
Result = new String[0]; //Need to setup result array to avoid initialisation error
writeLogSQL(SQLquery + " caused error " + e.getMessage());
}
writeLogSQL(SQLquery + "worked ");
return Result;
} // End SelectRow
Любые идеи?