NetBeans 6.1, MySQL6 e Windows Vista

11 respostas
W

Ae galera, to aprendendo a programar em java em um curso da EADCON, mas me deparei com um pequeno problema na hora de compilar um exemplo com o NetBeans.

Obs`: Eles não especificaram nenhuma IDE especifica, mas achei a netBeans 6.1 interresante!

Obs``: Uso windows vista home premiun e MySQL6 alpha( o 5 não queria rodar no meu note)

Segue o codigo do exemplo deles e o erro:

package aula04;

import java.awt.Frame;
import java.awt.List;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Aula04 {
    private Connection conn;
    private PreparedStatement pstmt;
    private Statement stmt;
    private ResultSet rs;
    
    public void open(){
        try {
                Class.forName("org.gjt.mm.mysql.Driver");
                conn = DriverManager.getConnection(
                       "jdbc:mysql://localhost/aluno?autoReconnect=true", 
                        "root", "mysteri0");
            } catch (ClassNotFoundException e)
            {
             e.printStackTrace();
            } catch (SQLException e)
            {
             e.printStackTrace();
             }
    }
    
    public void close(){
        try{
            if (stmt != null)
                stmt.close();
            conn.close();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
    
    public void inserir(){
        try{
            //Abrindo a conexão com o banco
            open();
            //intanciando o objeto statement (stmt)
            stmt = conn.createStatement();
            //Executando uma instrução SQL
            stmt.executeUpdate("INSERT INTO ALUNO VALUES (3, 'Pedro da Silva')");
            //Fechando a conexão com o banco
            close();
        } catch (SQLException e){
            //Fechando a conexão com o banco
            close();
            e.printStackTrace();
        }
    }
    
    public void alterar(){
        try{
            //Abrindo a conexão com o banco 
            open();
            //instanciando o objeto preparedStatement (pstmt)
            pstmt = conn.prepareStatement("UPDATE ALUNO SET NOME = ? Where id = 1");
            //Setando o valor ao parãmetro
            pstmt.setString(1, "Maria Rita");
            //Fechando a conexão com o banco
            pstmt.execute();
            close();
        } catch (SQLException e){
            //Fechanco a conexão com o banco
            close();
            e.printStackTrace();
        }
    }
    
    public ResultSet buscarAlunos(){
        try{
            open();
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT id, nome FROM ALUNO");
            return rs;
        } catch (SQLException e){
            close();
            e.printStackTrace();
        }
        return null;
    }
    
    public void imprimirAlunos() throws SQLException{
        List listAlunos = new List();
        Aula04 aula = new Aula04();
        aula.rs = aula.buscarAlunos();
        while (aula.rs.next())
            listAlunos.add("id: " + aula.rs.getInt("id") + " - " + "Nome: "
                                                   + aula.rs.getString("nome"));
        
        Frame janela = new Frame("Janela");
        janela.setLocation(300, 300);
        janela.setSize(300, 300);
        
        janela.add(listAlunos);
        janela.setVisible(true);
    }
    
    public static void main(String[] args){
        Aula04 aula = new Aula04();
        aula.inserir();
        aula.alterar();
        aula.rs = aula.buscarAlunos();
        try{
            aula.imprimirAlunos();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
}

------------------------------------------------------------------------------------------------------------------------------------
init:
deps-jar:
compile:
run:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at aula04.Aula04.open(Aula04.java:31)
        at aula04.Aula04.inserir(Aula04.java:60)
        at aula04.Aula04.main(Aula04.java:130)
Exception in thread "main" java.lang.NullPointerException
        at aula04.Aula04.inserir(Aula04.java:62)
        at aula04.Aula04.main(Aula04.java:130)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Obs```: Exibe sucesso mas n exibe a janela

Desculpem pelo transtorno!

11 Respostas

fnandos

O conector JDBC do mysql 6 está na classpath do seu projeto, por que pela exceção que ele trouxe parece que não

java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver

Classe não encontrada

B

Ola,

Entra em http://dev.mysql.com/downloads/connector/j/5.1.html e baixa o conector, depois dezipa ele e coloca o jar no classpath da sua aplicação.

W

Certo, mas onde fica a Classpath? ja fiz os downloads mas não encontro a pasta para instalar!
Açgume poderia me ajudar mais um pouco?
Vlw!

B

Botao direito do mouse em cima do projeto->ache libraries->adiciona o jar.

W

Desculpe continuar incomodando, mas qual o nome do arquivo do arquivo com extensão jar? só achei um monte de classes e bin`s nos arquivos que eu baixei.

:oops:

B

Se vc baixou o arquivo binario, da qual o nome e mysql-connector-java-5.1.6.tar.gz, dezipa ele, e ira aparecer o arquivo mysql-connector-java-5.1.6-bin.jar.

W

Galera, consegui achar o arquivo .jar( meu vista n tava monstrando o .jar, mas graças ao Bruno eu consegui achar), mas ainda não consegui fazer o
codigo executar, ta aparecendo o seguinte erro:

run: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2253) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:171) at aula004.Aula04.open(Aula04.java:33) at aula004.Aula04.inserir(Aula04.java:61) at aula004.Aula04.main(Aula04.java:131) Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'aluno' at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910) at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2181) ... 8 more Exception in thread "main" java.lang.NullPointerException at aula004.Aula04.inserir(Aula04.java:63) at aula004.Aula04.main(Aula04.java:131) Java Result: 1 BUILD SUCCESSFUL (total time: 4 seconds)

Já não sei mais o que fazer, preciso terminar esse exemplo para poder avançar nos meus estudos!
A ajuda de vcs ta sendo muito boa! VLW :smiley:

B

Ola,

Seguinte, da uma repassada na parte de “criando o banco de dados para o exemplo”, pois a exception diz que nao consegue conectar pq nao tem um banco chamado “aluno”.

W

Ae Bruno era isso mesmo, eu estava tentando acessar o BD pelo nome da tabela que eu criei(aluno) e não pelo nome do BD(root)!
Apesar de agora ele estar gerando esse relatorio:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'nome' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485) at aula004.Aula04.inserir(Aula04.java:65) at aula004.Aula04.main(Aula04.java:131)

:smiley:
Agradeço a todos pela ajda e espero aprender o suficinte para poder ajudar tambem!
Vlw

B

wibson82:
Ae Bruno era isso mesmo, eu estava tentando acessar o BD pelo nome da tabela que eu criei(aluno) e não pelo nome do BD(root)!
Apesar de agora ele estar gerando esse relatorio:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'nome' at row 1 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564) at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485) at aula004.Aula04.inserir(Aula04.java:65) at aula004.Aula04.main(Aula04.java:131)

:smiley:
Agradeço a todos pela ajda e espero aprender o suficinte para poder ajudar tambem!
Vlw

E vc já conseguiu descobrir o pq deste erro?

W

Com a ajuda de voces eu consegui resolver os erros que estavam ocorrendo, que eram basicamente chamar uma tabela, em vez de o banco de dados. Por isso ele não conseguia se conectar, pois não achava o banco porque ele não existia,
E quando a essa mensagem que esta aparecendo, creio que seja apenas o netBeans se cominicando com o banco e indicando o que foi feito, ja que não ha menção a erros no codigo, como havia antes e o programa executa bem.
Agora estou passando pra proxima etapa dos estudos, relatório com o iReport,
Vlw de novo, até outro dia!

Pra quem quiser trocar uma ideias depois, pega meu msn [email removido]
Até

Criado 17 de junho de 2008
Ultima resposta 20 de jun. de 2008
Respostas 11
Participantes 3