Nenhum Driver Apropriado ! :-(

6 respostas
L

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.<em>;

import javax.servlet.http.</em>;

import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;

import java.sql.*;

//import com.brainysoftware.java.StringUtil;

public class SQLToolServlet extends HttpServlet {

/*<em>Load the JDBC driver</em>/

public void init() {

try {

Class.forName(org.postgresql.Driver);

System.out.println(JDBC driver loaded);

}

catch (ClassNotFoundException e) {

System.out.println(e.toString());

}

}

/*<em>Process the HTTP Get request</em>/

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

sendSqlForm(request, response);

}
/*<em>Process the HTTP Post request</em>/

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("&lt;HTML&gt;");
out.println("&lt;HEAD&gt;");
out.println("&lt;TITLE&gt;SQL Tool Servlet&lt;/TITLE&gt;");
out.println("&lt;/HEAD&gt;");
out.println("&lt;BODY&gt;");
out.println("&lt;BR&gt;&lt;H2&gt;SQL Tool&lt;/H2&gt;");
out.println("&lt;BR&gt;Please type your SQL statement in the following box.");
out.println("&lt;BR&gt;");
out.println("&lt;BR&gt;&lt;FORM METHOD=POST&gt;");
out.println("&lt;TEXTAREA NAME=sql COLS=80 ROWS=8&gt;");
String sql = request.getParameter("sql");

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

out.println("&lt;/TEXTAREA&gt;");
out.println("&lt;BR&gt;");
out.println("&lt;INPUT TYPE=SUBMIT VALUE=Execute&gt;");
out.println("&lt;/FORM&gt;");
out.println("&lt;BR&gt;");
out.println("&lt;HR&gt;");
out.println("&lt;BR&gt;");

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

out.println("&lt;/BODY&gt;");
out.println("&lt;/HTML&gt;");

}

/**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("&lt;TABLE BORDER=1&gt;");
    ResultSet rs = s.executeQuery(sql);
    ResultSetMetaData rsmd = rs.getMetaData();
    // Write table headings
    int columnCount = rsmd.getColumnCount();
    out.println("&lt;TR&gt;");
    for (int i=1; i&lt;=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

6 Respostas

M

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:

L

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

L

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

L

Amigos,

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

import javax.servlet.<em>;

import javax.servlet.http.</em>;

import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;

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

M

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; "mm.gjt.msql.Driver" &#41;;

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

Class.forName&#40; "postgresql-9.0-310.jdbc3" &#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:

L

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:

Criado 3 de fevereiro de 2005
Ultima resposta 5 de fev. de 2005
Respostas 6
Participantes 2