Nenhum Driver Apropriado ! :-(

Senhores,

Estou tentando rodar esta classe …
Mas acaba dando a informação que não há driver apropriado …
Estou perdido … Tem como alguém ajudar ???

import javax.servlet.;
import javax.servlet.http.
;
import java.io.;
import java.util.
;
import java.sql.*;
//import com.brainysoftware.java.StringUtil;

public class SQLToolServlet extends HttpServlet {

/*Load the JDBC driver/
public void init() {
try {
Class.forName(“org.postgresql.Driver”);
System.out.println(“JDBC driver loaded”);
}
catch (ClassNotFoundException e) {
System.out.println(e.toString());
}
}
/*Process the HTTP Get request/
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
sendSqlForm(request, response);
}

/*Process the HTTP Post request/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
sendSqlForm(request, response);
}

/**Send the form where the user can type in

  • an SQL statement to be processed
    */
    private void sendSqlForm(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>SQL Tool Servlet</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("<BR><H2>SQL Tool</H2>");
out.println("<BR>Please type your SQL statement in the following box.");
out.println("<BR>");
out.println("<BR><FORM METHOD=POST>");
out.println("<TEXTAREA NAME=sql COLS=80 ROWS=8>");
String sql = request.getParameter("sql");

// Reprint the previously entered SQL in the TextArea
if (sql!=null)
  out.println(sql);

out.println("</TEXTAREA>");
out.println("<BR>");
out.println("<INPUT TYPE=SUBMIT VALUE=Execute>");
out.println("</FORM>");
out.println("<BR>");
out.println("<HR>");
out.println("<BR>");

if (sql!=null) {
  executeSql(sql.trim(), response);
}

out.println("</BODY>");
out.println("</HTML>");

}

/**execute the SQL */
public void executeSql(String sql, HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();
try {
  //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  Connection con = DriverManager.getConnection("jdbc:odbc:JavaWeb");
  System.out.println("got connection");

  Statement s = con.createStatement();

  if (sql.toUpperCase().startsWith("SELECT")) {
    out.println("<TABLE BORDER=1>");
    ResultSet rs = s.executeQuery(sql);
    ResultSetMetaData rsmd = rs.getMetaData();
    // Write table headings
    int columnCount = rsmd.getColumnCount();
    out.println("<TR>");
    for (int i=1; i<=columnCount; i++) {
      out.println("&lt;TD&gt;<B>" + rsmd.getColumnName(i) + "</B>&lt;/TD&gt;\n");
    }
    out.println("&lt;/TR&gt;");
    /*while (rs.next()) {
      out.println("&lt;TR&gt;");
      for (int i=1; i&lt;=columnCount; i++) {
        out.println("&lt;TD&gt;" + StringUtil.encodeHtmlTag(rs.getString(i)) + "&lt;/TD&gt;" );
      }
      out.println("&lt;/TR&gt;");
    }*/
    rs.close();
    out.println("&lt;/TABLE&gt;");
  }
  else {
    int i = s.executeUpdate(sql);
    out.println("Record(s) affected: " + i);
  }
  s.close();
  con.close();
  out.println("&lt;/TABLE&gt;");
}
catch (SQLException e) {
  out.println("<B>Error</B>");
  out.println("&lt;BR&gt;");
  out.println(e.toString());
}
catch (Exception e) {
  out.println("<B>Error</B>");
  out.println("&lt;BR&gt;");
  out.println(e.toString());
}

}
}

Abraços,
Lingenover

Salve,

Cara, verifique se você tem este driver (sun.jdbc.odbc.JdbcOdbcDriver), acredito que você está estudando o livro Java para Web com Servlets, EJB e JSP, e nesse livro tem explicando como você obtem o mesmo.

até mais. :twisted:

Olá Marcos,

Então, mas na verdade eu preciso do Driver “org.postgresql.Driver” pois estou trabalhando com o Postgre, estou certo ???

Aí acessei o site “http://jdbc.postgresql.org/download.html” e baixei o “pg74.215.jdbc3.jar” …

Porém não tenho ctza se este driver é o que eu necessito … Como eu posso descobrir se é este Driver ou não ???

Também fiquei meio perdido de onde eu deveria colocar este Driver … Por isso está dando este pau que eu não sei o que fazer … :frowning:

Abraços,
Lingenover

Olá Marcos,

Então, mas na verdade eu preciso do Driver “org.postgresql.Driver” pois estou trabalhando com o Postgre, estou certo ???

Aí acessei o site “http://jdbc.postgresql.org/download.html” e baixei o “pg74.215.jdbc3.jar” …

Porém não tenho ctza se este driver é o que eu necessito … Como eu posso descobrir se é este Driver ou não ???

Também fiquei meio perdido de onde eu deveria colocar este Driver … Por isso está dando este pau que eu não sei o que fazer … :frowning:

Abraços,
Lingenover

Amigos,

Não cafunga este troço … :frowning:

import javax.servlet.;
import javax.servlet.http.
;
import java.io.;
import java.util.
;
import java.sql.*;

public class ConeccaoBanco {

public ResultSet resultSet;

public Connection connect;

String url;

public ConeccaoBanco(){

try {

url = “jdbc:postgresql:192.168.2.8:5432:sistatend”;
Class.forName( “org.postgresql.Driver” );

connect = DriverManager.getConnection( url );

System.out.println(“Sucesso na Conecção” );

}catch ( ClassNotFoundException cnfex ) {

//Exceções de classes não encontradas

cnfex.printStackTrace();

System.out.println("Falha na conecção " + cnfex.toString() );

}catch ( SQLException sqlex ) {

//Exceções SQL

sqlex.printStackTrace();

System.out.println("Falha na conecção " + sqlex.toString() );

} catch ( Exception ex ) {

//Exceções

ex.printStackTrace();

System.out.println("Exceções " + ex.toString() );

}

}//Fim Construtor

}

A mensagem de erro que dá é a seguinte …
“Falha na Conexão java.sql.SQLException: No suitable driver”

Caramba …
Aí eu peguei estes drivers …
“pg73jdbc3-1.jar”
“pg73jdbc3.jar”
“pg74-1.215.jdbc3.jar”
“pg74.215.jdbc3.jar”
“postgresql-8.0-310.jdbc3.jar”
“postgresql-9.0-310.jdbc3.jar”

E por uma questão de dúvida … Pois não sei qual é o certo …
Coloquei todos eles dentro destas pastas …
“C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\lib”
“C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0\webapps\embracon\WEB-INF\lib”

Esta última é a pasta onde estou rodando a minha aplicação …
Estou trabalhando com o “Tomcat 5.0” como já é visto …
E com o Postgre …

Alguém poderia dar-me uma força ???

Abraços,
Lingenover

Salve,

Cara o teu erro, agora está na declaração do driver, se o driver que você baixou, por exemplo, o mysql existe um driver “mm.gjt.msql.Driver.jar” acho que até foi comentado neste livro, aí na instrução que carrega o driver fica assim

Class.forName&#40; &quot;mm.gjt.msql.Driver&quot; &#41;; 

para o driver postgresql-9.0-310.jdbc3.jar tente usando

Class.forName&#40; &quot;postgresql-9.0-310.jdbc3&quot; &#41;; 

o driver você pode colocar apenas na pasta lib de sua aplicação que funciona perfeitamente, no tomcat 5 eu esqueci mas deve ser na pasta que você citou.

como não conheço o postgresql não sei se sua url está correta, tenta aí qualquer erro poste novamente que irei procurar mais.
:wink: :arrow: :idea:

Caro Marcos,

Consegui, com a ajuda dos amigos a resolver este problema … :slight_smile:
Era uma coisa mto simples mesmo …
Era só a url de conexão q estava errada … :slight_smile:

Aí, com o seguinte trecho de código, deu tudo certo.

[color="#FF0000"]
url = “jdbc:postgresql://192.168.2.8:5432/sistatend”;
Class.forName( “org.postgresql.Driver” );
Connection db = DriverManager.getConnection( url, “postgre”, “” );
System.out.println(“Sucesso na Conecção” );

Statement st = db.createStatement();
ResultSet rs = st.executeQuery(“SELECT * FROM usuario”);
while(rs.next()) {
System.out.print("Column 1 returned ");
System.out.println(rs.getString(1));
}
rs.close();
st.close();
[/color]

De qquer forma …
Agradeço enormente a força cedida … :slight_smile: