Numa conex�o com o banco de dados, o PreparedStatement � adquado para ser
utilizado com um comando SELECT? Por exemplo, o seguinte c�digo n�o
funcionou comigo (tentei colocar da maneira mais resumida que consegui).
import java.io.*;
import javax.servlet.*;
import java.sql.*;
public class ServletPrepared extends GenericServlet
{
public void service(ServletRequest req, ServletResponse res)
{
ResultSet result;
PrintWriter out;
Connection connection;
PreparedStatement statement;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection=DriverManager.getConnection("jdbc:odbc:webapp");
statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE '%?%'");
statement.setString(1,"davi");
result=statement.executeQuery();
if (result!=null)
{
out=res.getWriter();
while(result.next())
out.print(result.getString(1));
out.flush();
}
connection.close();
}
catch(ClassNotFoundException e)
{
System.out.println("Driver unavailabe: "+e.getMessage());
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
catch(SQLException e)
{
System.out.println(e.getMessage());
}
}
}
O erro gerado foi:
java.lang.NullPointerException
at ServletPrepared.service(ServletPrepared.java:35)
at
com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:9
6)
at com.caucho.server.http.Invocation.service(Invocation.java:312)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:221)
at
com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
at java.lang.Thread.run(Thread.java:484)
O script da tabela utilizada foi o seguinte:
CREATE TABLE [dbo].[Agenda] (
[Codigo] [int] IDENTITY (1, 1) NOT NULL ,
[Nome] [varchar] (50) NOT NULL ,
[Fone] [char] (10) NOT NULL ,
[EMail] [varchar] (20) NULL
)
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]