Fiz um código de conexão e gostria da opinião de vcs

9 respostas
A

Eu tinha feito esse post em outro fórum aqui mas acho que foi o lugar errado então resolvi postar aqui
Continuando meus estudos, li alguns tutoriais e achei um jeito legal de usar mysql com jsp. Eu criei uma classe de conexão e implento ela nas jsp, olha como estou fazendo:
Essa é a classe java:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public final class Conexao{
    public static Connection conectar(){
        // base de dados é "test"
        String url = "jdbc:mysql://localhost/test";
        String usuario = "root";
        String senha = "";
        
        try{
           Class.forName("com.mysql.jdbc.Driver").newInstance();
           Connection conn = DriverManager.getConnection(url, usuario, senha);
           return conn;
        } 
        catch(SQLException ex){
           System.err.println("SQLException: " + ex.getMessage());
           System.err.println("SQLState: " + ex.getSQLState());
           System.err.println("VendorError: " + ex.getErrorCode());
           return null;
        }
        catch(Exception e){
           System.err.println("Problemas ao tentar conectar com o banco de dados");
           return null; 
        }
    }
}

Essa é a jsp

<%@ page language="java" import="java.sql.*, estudos.Conexao" %>
<html>
<head><title>Aprendendo JSP</title>
</head>
<body>

<%
  Connection conn = Conexao.conectar();
  
  // testa se a conexão foi efetuada com sucesso
  if(conn != null)
    out.println("Conexão efetuada com sucesso!"); 
%>

</body>
</html>

Dessa forma eu tenho uma única classe e posso usar em todas minhas jsp
O que vcs acharam? ficou bom? Ou existe uma forma melhor? Opinem por favor estou estudando e quero aprender a melhor forma.
Obrigado

9 Respostas

C

é isso mesmo man, não tem jeito de otimizar esse código mais do q isso não

A

Valeu pela força cara obrigado, vou continuar os estudos
at+

C

Alexandre, a melhor forma mesmo é você separar em camadas. Aconselho você ler sobre MVC e depois estudar algum framework.

A

E ae blz
Então estou com duas dúvidas a primeira é a seguinte, vc falou que o melhor modo de fazer essa conexão é por camadas e mvc, não sei se estou enganado mas o modo que estou fazendo a coneão não é um mvc? por exemplo todo o meu código de conexão fica em um servlet como postei acima, assim ele será o controlador da conexão e todos os jsp usaram ele para se conectar. Ou estou errado? Sei que deve existir um modo melhor de testar a conexão na jsp usando EL por exemplo é que ainda estou estudando e fiz esse script java no jsp só para ver se a conexão esta funcionando mas pretendo usar as tags e EL no lugar de scripts

O segundo detalhe é o seguinte eu a minha conexão não esta dando certo detalhando meu código o servlet é identico o que fiz acima mas o jsp fiou assim:

<%@ page language="java" import="java.sql.*, com.example.conexao.Conexao" %>
<html>
<head><title>Aprendendo JSP</title>
</head>
<body>

<%
  Connection conn = Conexao.conectar();
  
  // testa se a conexão foi efetuada com sucesso
  if(conn != null)
  {
    out.println("Conexão efetuada com sucesso!");
  }
  else
  {
    out.println("Não funfou essa merda!!");
  }
%>

ele só esta exibindo a msn no else. Onde estou errando? eu uso linux descompactei o mysql-connector no seguinte diretório:
/opt/mysql-connector-java-5.0.5
e minha classpath esta assim:

#!/bin/sh 
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH

TOMCAT_HOME=/opt/apache-tomcat-6.0.10;export JAVA_HOME


CLASSPATH=$CLASSPATH:$JAVA_HOME\jre\lib:$JAVA_HOME\jre\lib\tools.jar:/opt/mysql-connector-java-5.0.5/mysql-connector-java-5.0.5-bin.jar:$JAVA_HOME/lib
export CLASSPATH

Tudo esta funcionando bem o java o tomcat mas a conexão não esta funcionando, quando eu compilo a calsse de conexão passa numa boa não da erro, mas na hora de executar a jsp da o erro acima. Onde posso estar errando?
Eu estou fazendo tudo na mão não uso IDE uso editor comum, não sei se isso é bom ou ruim aceito conselhos.

A

Então pessoal estou refazendo a minha conexão e estou testando usando o netbeans 5.5 dessa vez minha conexão ficou assim:
servlet:

/*
 * Conexao.java
 *
 * Created on 11 de Abril de 2007, 23:28
 */

package conexao;

import java.sql.*; 

public  class Conexao{
    public static Connection conectar(){
       
        String url = "jdbc:mysql://localhost/fidelity";
        String usuario = "root";
        String senha = "";
        
        try{
           Class.forName("com.mysql.jdbc.Driver");
           Connection conn = DriverManager.getConnection(url, usuario, senha);
	   //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/fidelity","root","");
           return conn;
        } 
        catch(SQLException ex){
           System.err.println("SQLException: " + ex.getMessage());
           System.err.println("SQLState: " + ex.getSQLState());
           System.err.println("VendorError: " + ex.getErrorCode());
           return null;
        }
        catch(Exception e){
           System.err.println("Problemas ao tentar conectar com o banco de dados");
           return null; 
        }
    }
}

e o pagina de teste ficou assim:

<%@ page language="java" import="java.sql.*, conexao.Conexao, com.mysql.jdbc.Connection" %>
<html>
<head><title>Aprendendo JSP</title>
</head>
<body>

<%
  Connection conn = Conexao.conectar();
  
  // testa se a conexão foi efetuada com sucesso
  if(conn != null)
  {
    out.println("Conexão efetuada com sucesso!");
  }
  else
  {
    out.println("Não funfou essa merdaaaaa!!");
  }
%>

Esta dando essa msn de erro:

Essa setinha “^” ela esta exatamente embaixo dos parenteses, aqui na exibição ficou incorreto
Ou seja esta dando erro na minha jsp, pelo menos é o que eu entendi mas ainda não consegui consertar. Alguém sabe onde estou errando?
Fiz tudo como manda o figurino colocar o mysql-connector-java-5.0.5-bin.jar na Libraries

A

E ae pessoal
Realmente esta complicado esse erro, andei olhando com mais detalhe e achei outra mensagem de erro que o netbeans abresenta na aba Bundled Tomcat(5.5.17) fora a mensagem que mostrei acima que fica em outra aba com o mesmo nome

A resposta no browser continua sendo o msn do meu ELSE no jsp, mas no netbeans fica essa mensagem acima
Pelo que eu entendi a conexão foi negada resumindo tudo, procurei na net e vi um post que o cara falou que o problema estava na limitação de conexão com o mysql, talvez esse seja o problema ou talvez não, estou procurando algom sobre limitação de conexão do mysql, se alguém tiver uma idéia do erro me ajude por favor

A

Então galera, eu fiz mais alguns teste e resolvi testar no windows usando esse mesmo código acima no windows funcionou, então o problema esta no meu linux, agora a pergunta é o que? Eu rodo o apache com php e mysql no linux e funciona normalmente, e com o java e netbeans estou com esse erro com essa msn de erro acima mas no windows esse código funciona, já desinstalei e instalei novamente mas não deu certo. Alguém tem alguma idéia? A mensagem de erro diz conexão negada, agora se o apache e php funciona normalmente a conexão com mysql onde será que esta o erro no java não consigo achar preciso de ajuda
Eu uso mandriva linux 2007 e jsdk 1.6 e netbeans 5.5 com mysql 5

A

Galera, obrigado a quem tentou me ajudar, como suspeitei o problema era no mysql um amigo me informou como deveria ser a configuração do mysql no arquivo my.cnf tem uma opção skip-network essa opção desativa a conexão com os host foi só comentar ela que tudo ficou ok.

C

Obrigado por colocar a solução da sua dúvida!

Criado 10 de abril de 2007
Ultima resposta 23 de abr. de 2007
Respostas 9
Participantes 3