Sandro,
j� fiz a substitui��o, mas n�o funcionou. Tentei fazer algumas modifica��es
e aconteceu o seguinte, no c�digo abaixo: da maneira como est� n�o aparece
nada no browser, mas quando substituo a linha
>> statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE ?");
>> statement.setString(1,"%davi%");
por qualquer uma dos blocos de instru��es comentados, os valores desejados
s�o retornados. N�o sei se tem haver, mas o SGBD que estou utilizando �
Microsoft SQL Server.
Antecipadamente, obrigado a todos.
import java.io.*;
import javax.servlet.*;
import java.sql.*;
public class ServletPrepared extends GenericServlet
{
public void service(ServletRequest req, ServletResponse res)
{
ResultSet rset;
PrintWriter out;
Connection connection;
PreparedStatement statement;
String tmp;
try
{
out=res.getWriter();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection=DriverManager.getConnection("jdbc:odbc:webapp","sa","");
// * Primeiro bloco de instru��es
// * statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE
CODIGO > ?");
// * statement.setInt(1,1);
// * Segundo bloco de instru��es
// * statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE '%davi%'");
statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE ?");
statement.setString(1,"%davi%");
rset=statement.executeQuery();
while (rset.next())
{
out.print(rset.getString(2)+"<br>");
}
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());
}
}
}
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Friday, September 27, 2002 9:59 AM
Subject: RES: [enterprise-list] PreparedStatement
Quer ter seu pr�prio endere�o na Internet?
Garanta j� o seu e ainda ganhe cinco e-mails personalizados.
Dom�niosBOL - http://dominios.bol.com.br
Troque as linhas
>> statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE '%?%'");
>> statement.setString(1,"davi");
para
>> statement=connection.prepareStatement("SELECT * FROM AGENDA WHERE NOME
LIKE ?");
>> statement.setString(1,"%davi%");
Sandro Toledo
-----Mensagem original-----
De: Davi Medeiros Cabral [mailto:[EMAIL PROTECTED]]
Enviada em: sexta-feira, 27 de setembro de 2002 00:46
Para: [EMAIL PROTECTED]
Assunto: [enterprise-list] PreparedStatement
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]
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para:
[EMAIL PROTECTED]
---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para:
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]