Como conectar no BD com servlet - Ajuda!

4 respostas
M

Pessoal, tenho essa classe de conexão com o banco mysql e um servlet que executa o sql conforme a opção recebida. O problema é que não sei como conectar o banco de dados para executar o sql no servlet.

Alguém pode me ajudar com essa dúvida básica?

Classe de conexão:

package ConexaoBD;   
  
import java.sql.*;      
  
public class Conexao {      
  
   public static Connection con;      
   public static Statement stm;      
   private static String res = "";      
  
   public Conexao() {    
  
      try {      
  
         Class.forName("com.mysql.jdbc.Driver");      
         con = DriverManager.getConnection("jdbc:mysql://localhost/portal?zeroDateTimeBehavior=convertToNull","portal","alltec");      
         stm = con.createStatement();       
  
         res = "Conexão efetuada com sucesso";      
  
  
      } catch (Exception e) {      
         res = "não foi possível conectar ao banco" + e.getMessage();      
      }      
   }      
  
   public String getSituacao(){      
      return res;         
   }   
}

Servlet:

package Servlets;   
  
import java.io.IOException;   
import java.io.PrintWriter;   
import java.sql.SQLException;   
import javax.servlet.ServletException;   
import javax.servlet.http.HttpServlet;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import ConexaoBD.Conexao;   
import Data.Data;   
  
public class CqaCadastraAlteraExclui extends HttpServlet {   
  
   protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException {   
  
      response.setContentType("text/html;charset=ISO-8859-1");   
  
      PrintWriter out = response.getWriter();   
  
      String sql = null;   
      String nomeSession = null;   
         
      nomeSession = ("Marcos");      
  
      String acao = (String) request.getParameter("acao");   
      if (acao.equals("cadastra") || acao.equals("alterar") || acao.equals("excluir") || acao.equals("consultar") || acao.equals("alterar")) {   
            
      }   
      if (acao.equals("cadastra")) {   
  
         //PRECISO EXECUTAR ESSE SQL   
         sql = "insert into cqa (criador) values('"+nomeSession+"')";   
  
         out.println(sql);   
         //response.sendRedirect("cqaDefineFluxo.jsp?cadastro=OK&criadorCqa="+nomeSession+"");   
      }   
   }   
   protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {   
      try {   
         processRequest(request, response);   
      } catch (SQLException e) {   
         e.printStackTrace();   
      }   
   }   
   protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {   
      try {   
         processRequest(request, response);   
      } catch (SQLException e) {   
         e.printStackTrace();   
      }   
   }   
}

Obrigado

Marcos

4 Respostas

ridelmar

Caro Marcos,

Seguem algumas dicas:

1º CONEXÃO COM O BANCO: para executar a conexão com a banco basta voce instanciar a classe conexao:
(conexao objConexao = new Conexao()) ao instanciar a classe o construtor será executado e a conexão será estabelecida.

2º EXECUTAR O SQL: segue o exemplo abaixo da classe Conexao:

import java.sql.*;

public class Conexao {

public static Connection con;        
public static Statement stm;        
private static String res = "";        
 
public Conexao() {      
 
   try {        
 
      Class.forName("com.mysql.jdbc.Driver");        
      con = DriverManager.getConnection("jdbc:mysql://localhost /portal?zeroDateTimeBehavior=convertToNull","portal","alltec");        
      stm = con.createStatement();         
 
      res = "Conexão efetuada com sucesso";        
 
 
   } catch (Exception e) {        
      res = "não foi possível conectar ao banco" + e.getMessage();        
   } 
}

public void insereBD(String parametro) throws SQLException{

String sql = "insert into cqa (criador) values('"+parametro+"')";

   // Definido o Statement, executamos a query no banco de dados  
   ResultSet rs = stm.executeQuery(sql);

}

Alterações:

1º - Criar o metodo para inserir no banco na classe Conexao
2º - Instanciar o objeto Conexao na classe CqaCadastraAlteraExclui
3º - Passar os parametros para o metodo criado apartir da classe CqaCadastraAlteraExclui .

Abraços

ridelmar

.

nathanpc
Olá ridelmar, Por favor, ao postar códigos por favor, os poste entre code tags, tipo assim usando o seu código:
import java.sql.*;

public class Conexao {
public static Connection con;
public static Statement stm;
private static String res = "";

public Conexao() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost /portal?zeroDateTimeBehavior=convertToNull","portal","alltec");
stm = con.createStatement();
res = "Conexão efetuada com sucesso";
} catch (Exception e) {
res = "não foi possível conectar ao banco" + e.getMessage();
}
}

public void insereBD(String parametro) throws SQLException{
String sql = "insert into cqa (criador) values('"+parametro+"')";
// Definido o Statement, executamos a query no banco de dados
ResultSet rs = stm.executeQuery(sql);
}
M

Obrigado Ridelmar!

Criado 3 de agosto de 2009
Ultima resposta 4 de ago. de 2009
Respostas 4
Participantes 3