JAVA e MYSQL - o Sofrimento

13 respostas
Felagund

Seguinte, pessoal depois de muito tentar conexões com aquele maldito driver, finalmente consegui utilizar, porém, a maquina que eu desenvolvo, não é o servidor do banco MySql, estou rodando no linux Ubuntu, com o NetBeans IDE 5.5, e o erro que aparece é o que segue abaixo

saturno é o nome do servidor interno, é uma aplicação interna para meu serviço, o codigo que eu estou usando é o que segue abaixo:

import java.sql.*;
public class BancoTeste {
    
    public static void main(String args[]) {
        System.out.println("Testando acesso a banco de dado MySQL\n\n");
        Connection conn = null;
        
        try{
            
            Class.forName( "com.mysql.jdbc.Driver" );
            conn = DriverManager.getConnection("jdbc:mysql://saturno/laboratorio?user=root");
            System.out.println("Conexão com sucesso");
            
        } catch(ClassNotFoundException e) {
            System.out.println("excessão Classe não encontrada");
            e.printStackTrace();
        }
        
        catch(SQLException e) {
            // se houve algum erro, uma exceção é gerada para informar o erro
            e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou
        }
        
        
    }

E ele pega a SQLException, estou iniciando nesse projeto MySql e JAVA, e estou enfrentando problemas, alguem ae pode me ajudar?

agradeço desde já

att

13 Respostas

nbluis

Já diz o nome.

Ele não encontrou o host.

Falta a porta na sua conexao.
Eis um exemplo.

jdbc:mysql://localhost:3306/teste

Até.

nadilsons

Ele nao estah encontrando o servidor mysql…

verfique se existe algum firewall… ou se o servidor estah rodando…

Ate mais,

Felagund

fio so trocar o nome do hsot pelo IP que o erro foi outro, via terminal consegui me conectar com o MySql

mais agora há um novo erro

nbluis

Tá, é que tu tem que configurar seu usuário para obter conexões remotas.

Por default todo o usuário só pode conectar na maquina por localhost.

Felagund

isso já foi configurado, antes

o que falvata era o password na verdade eu troquei linhas de codigos

conn = DriverManager.getConnection("jdbc:mysql://IpServidor/laboratorio?user=root");

por esta linha

conn =  DriverManager.getConnection("jdbc:mysql://IpServidor/laboratorio", "root", "SenhaServidor");

e foi configurado com sucesso, conexão tah funcionando, valeu pela ajuda pessoal, podem fecha o topico.

att

Felagund

Estou com um problema de sintaxe do SQL agora, criei um metodo para busca

public ResultSet SelectSearch( String table, String coluna, String busca, Connection c ){
     
     ResultSet rs = null;
   
     try{
         
         Statement s = c.createStatement();
         rs = s.executeQuery( "Select * FROM " + table + " WHERE " + coluna + " LIKE %" + busca + "%" );
         
     }catch(Exception e) {
            System.err.println("Cannot connect to server "+e);
        }
        
        
        return rs;
     
 }

porém infelizmente ele naum reconhece a String busca, aplicanto a busca sem a variavel ele procede normalmente, porém pelo software gera um erro

O que eu digitei nesse busca foi a palavra corel.

nbluis

faltas as aspas

"Select * FROM " + table + " WHERE " + coluna + " LIKE '%" + busca + "%'"
erickcellani

recomendo naum usar concatecação!!!

use ‘?’ no lugar da concatenação… e depois coloca um Statement setano os paramentros!

Felagund

Deu certo, brigadao olha a falta que faz um maldito ', aahuuhahuaa, blz agora funciono bem, agradeço a atanção

obrigado

Marky.Vasconcelos

Use PreparedStatement pra evitar um SQL Injection
e imagina se vc for procurar algo com o nome de joana d’arc a aspa vai quebrar seu código
Vi isso na apostila FJ 21 da Caelum

I

OK, li em vários locais (inclusive aqui) como fazer para conectar java+MySql.
Baixei o driver mysql-connector-java-5.1.5-bin do site da MySql e instalei na aba RunTime do netbeans e apareceu lá na guia banco de dados-drivers algo do tipo MySql …

Até aí tudo bem, mas quando escrevo o código de conexão ele não encontra o driver com.mysql.jdbc.Driver

//1: Importar o package
import java.sql.*;


class mysqlapp {
    public static void main(String[] args) {
        System.out.println("JDBC-MySQL Conexão");
        
        
        try{
//2: Registrar o driver JDBC
            System.out.println("2: Registrando o driver JDBC?");
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            
            
            
//3: Estabelecer uma conexão
            System.out.println("3: Conectando ao banco de dados?");
            String jdbcUrl = "jdbc:mysql://localhost:3306/estoque";
            String usuario = "root";
            String senha = "";
            Connection conn = DriverManager.getConnection(jdbcUrl, usuario, senha);

O que pode está dando errado, pois o erro já ocorre na linha 13 do trecho de código acima e sem o newinstance também dá erro.
PS. O banco está no pc local e aberto.

rubinelli

Você acrescentou o jar no seu build path?

I

Eu consegui conectar através do netbeans colocando o .jar nas bibliotecas do projeto. Agora estou procurando como faço para adicionar o .jar no CLASSPATH. Muito obrigado pela dica.

Agora, mudando de assunto, li a apostila da Caelum sobre PreparedeStatement e é realmente muito interessante, consegui por grande parte do código de tratamento de sql fora da classe do formulário, o que falta lá é uma maneira de navegar nos registros, tipo: por botões primeiro,anterior,… e acessar os registros de acordo com o clique nestes botões. Consegui inserir, editar e excluir dados, mas não consigo navegar. alguém sabe onde encontro isto?

Criado 18 de maio de 2007
Ultima resposta 4 de jan. de 2008
Respostas 13
Participantes 7