JSP - Problema com 'Result'

2 respostas
H

Tudo bem.

Estou tentando adaptar um código em java para JSP.
É até um exemplo do livre do “Java - Como programar”, capítulo 25.
Em java; tudo tranquilo testei o bando de dados, e os resultados da
query foram impressos no console da IDE tranquilamente.
Em JSP; está dando um probleminha em dois trechos do código.

Código:

<html>
<%@page
	language="java" import="java.sql.Connection,java.sql.Statement,java.sql.DriverManager,java.sql.ResultSetMetaData
		java.sql.ResultSetMetaData,java.sql.SQLException,java.util.*,java.io.*"%>
<%
	final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
	final String DATABASE_URL = "jdbc:mysql://localhost/books";
	Connection connection = null;
	Statement statement = null;
	
	try {
		Class.forName(JDBC_DRIVER); // carrega classe de driver do banco de
									// dados

		// estabelece conexão com o banco de dados
		connection = DriverManager.getConnection(DATABASE_URL, <usuário>,<senha>);

		// cria Statement para consultar banco de dados
		statement = connection.createStatement();
		ResultSet resultSet = statement.executeQuery("SELECT authorID, firstName, lastName FROM authors");
		
		// processa resultados da consulta
		ResultSetMetaData metaData = resultSet.getMetaData();
		int numberOfColumns = metaData.getColumnCount();
		out.println("Authors Table of Books Database:"); %><br>
<%

		for (int i = 1; i <= numberOfColumns; i++)
			out.println(metaData.getColumnName(i));
		%><br>
<%

		while (resultSet.next()) {
			for (int i = 1; i <= numberOfColumns; i++)
				out.println(resultSet.getObject(i));
			%><br>
<%
		} // fim do while
	} // fim do try
	catch (SQLException sqlException) {
		sqlException.printStackTrace();
		System.exit(1);
	} // fim do catch
	catch (ClassNotFoundException classNotFound) {
		classNotFound.printStackTrace();
		System.exit(1);
	}
	finally
	{
		try {
			statement.close();
			connection.close();
		}
		catch (Exception exception) {
			exception.printStackTrace();
			System.exit(1);
		}
	}
%>
</html>

Log do erro:
[i]
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP:

[b]An error occurred at line: 10 in the generated java file
Syntax error on token “java”, delete this token

An error occurred at line: 22 in the jsp file: /index.jsp

ResultSet cannot be resolved to a type[/b]

19: 		// cria Statement para consultar banco de dados

20: 		statement = connection.createStatement();

21: 		ResultSet resultSet = statement.executeQuery(SELECT authorID, firstName, lastName FROM authors);

22: 		

23: 		// processa resultados da consulta

24: 		ResultSetMetaData metaData = resultSet.getMetaData();

25: 		int numberOfColumns = metaData.getColumnCount();
Stacktrace:

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)

org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)

org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:316)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:281)

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
[/i]

Não entendi o deu errado. Estou usando o Eclipse(JEE), Apache Tomcate 6.0.16 e MySQL Server 5.1.23.
Eu só queria que fosse impresso no navegar o mesmo que no console do Eclipse.
Alguém tem alguma dica.

Desde já estou grato pela ajuda.

2 Respostas

rollei

não sei se pode ser isso. no teu codigo voce importou duas vezes o ResultSetMetaData e nao colocou virgula entre eles, fora o fato que voce esqueceu de importa o ResultSet (soh deu import no ResultSetMetaData)

H

Muito obrigado era isso mesmo.
Li o código umas 5 vezes e não vi o que
estava errado.

Criado 31 de março de 2008
Ultima resposta 31 de mar. de 2008
Respostas 2
Participantes 2