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:
[code]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)[/code]
Obs```: Exibe sucesso mas n exibe a janela
Desculpem pelo transtorno!
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
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.
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!
Botao direito do mouse em cima do projeto->ache libraries->adiciona o jar.
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:
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.
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
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”.
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)
Agradeço a todos pela ajda e espero aprender o suficinte para poder ajudar tambem!
Vlw
[quote=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)
Agradeço a todos pela ajda e espero aprender o suficinte para poder ajudar tambem!
Vlw[/quote]
E vc já conseguiu descobrir o pq deste erro?
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 wibson82@hotmail.com
Até