Boa noite,
Estou com um problema assim: Tenho uma Servlet que no método doGet() ele chama doTest() que irá montar uma página com o resultado, porém, ele não consegue conectar no Banco de Dados (dizendo que o driver da base de dados não foi encontrado!). No entanto, eu testei a conexão com a Base de Dados com um exemplo e esta ok!
Código da Servlet :
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import UTIL.Conncetion_Interface;
/**
* Servlet implementation class for Servlet: CentralServlet
*
*/
public class CentralServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet,Conncetion_Interface {
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public CentralServlet() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
try{
doTest(request, response);
}catch(SQLException sqlE){
out.write("<HTML><BODY><PRE>Erro ao Executar o programa</PRE></BODY></HTML>");
}
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
protected void doTest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException,SQLException {
// TODO Auto-generated method stub
Connection conn;
Statement stmt;
PrintWriter out = response.getWriter();
out.write("<HTML><BODY>");
out.write("<PRE> Você esta conectado na Base de Dados com o IP : " + request.getRemoteAddr() + "</PRE><BR>");
try
{
Class.forName("com.mysql.jdbc.Driver");
out.write("<PRE>Driver Carregado!</PRE>");
out.write("<BR>");
}
catch(java.lang.ClassNotFoundException e)
{
out.write("<FONT COLOR=\"RED\"><PRE>Erro na aplicação! O Driver do Base de Dados não foi encontrado!<BR>"+
"Desculpe o transtorno.</PRE></FONT>");
}
try
{
// Abrindo a conexão com o servidor test
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",USER,SENHA);
stmt = conn.createStatement();
// Criando a instrução a partir do SELECT que está dentro da variável query
ResultSet rs = stmt.executeQuery("select * from exemplos");
out.write("<PRE>");
out.write("Resultado dos exemplos da Base de Dados:");
// Fazendo um loop para mostrar tudo o que foi retornado do banco
while (rs.next())
{
int ID = rs.getInt("ID");
String Nome_Programa = rs.getString("Nome_Programa").concat(".java");
String Exemplo = rs.getString("Exemplo");
out.write("Numero ID : " + ID + "<BR>" + "Nome do Exemplo : " + Exemplo + "<BR>" + "Nome do Programa : " + Nome_Programa + "</BR>");
}
//Fechando a instrução e a conexão
stmt.close();
conn.close();
out.write("</PRE>");
out.write("</BODY></HTML>");
}
catch(SQLException ex)
{
out.write("<HTML><BODY><PRE>Erro de SQL na aplicação!</PRE></BODY></HTML>");
}
}
Código do teste da Base de Dados:
package connection;
import interfaces.QueryInterface;
import java.sql.*;
import javax.swing.JOptionPane;
public class ConDBSQL implements QueryInterface{
public static void main(String args[]) {
// Criando as variáveis de conexão e de statement
Connection con;
Statement stmt;
String query = "select Exemplo,Nome_Programa,Código from exemplos";
// Verificando se o driver JDBC está instalado e pode ser utilizado
try
{
Class.forName("com.mysql.jdbc.Driver");
JOptionPane.showMessageDialog(null,"Driver Carregado!","Aviso",2);
}
catch(java.lang.ClassNotFoundException e)
{
JOptionPane.showMessageDialog(null,"O Driver não foi Encontrado!\n"+ "ClassNotFoundException: " + e.getMessage(),"Erro",0);
}
try
{
// Abrindo a conexão com o servidor test
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",user,password);
stmt = con.createStatement();
// Criando a instrução a partir do SELECT que está dentro da variável query
ResultSet rs = stmt.executeQuery(query);
System.out.println("Lista de linhas da tabela exemplos:");
// Fazendo um loop para mostrar tudo o que foi retornado do banco
while (rs.next())
{
String Exemplo = rs.getString("Exemplo");
String Nome_Programa = rs.getString("Nome_Programa").concat(".java");
String Cod_Programa = rs.getString("Código");
System.out.println("Nome do Exemplo : " + Exemplo + " \n" + "Nome do Arquivo : " +Nome_Programa + " \n" + Cod_Programa);
}
//Fechando a instrução e a conexão
stmt.close();
con.close();
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null,"Erro de SQL!\n"+ "SQLException: " + ex.getMessage(),"Erro",0);
}
}
}
Por favor, me ajudem.
Grato,
Douglas.