Eu tava começando a fazer um sistema q utiliza base de dados MySQL com os statements normais, isto é, meu código possuía código SQL misturado. Resolvi mudar isso usando PreparedStatements e um QueryManager, do exemplo mostrado no tutorial do GUJ.
Não sei o que estou fazendo de errado, mas na hora de inserir dados no banco ele simplesmente não faz nada… Dêem uma olhada no codigo
publicvoidinsere(){QueryManagermanager=QueryManager.getQueryManager();try{// cria um preparedStatementjava.sql.PreparedStatementstmt=manager.getPreparedStatement(principal.get_conexao(),"equip.insert");// preenche os valoresstmt.setString(1,NomeEquip1.getText());NovoEquipStatus.setText("Equipamento inserido com sucesso!");// executastmt.execute();stmt.close();System.out.println("Gravado!");}catch(java.sql.SQLExceptione){e.printStackTrace();}
Tinha algumas restrições erradas na tabela que eu estava inserindo tb… Mas agora ta tudo funcionando.
Vlw galera, abraços
rafael.pierre
Galera, desculpa encher de novo, mas agora estou tentando contar o numero de linhas da minha tabela e passar para uma JTextField
Fiz o seguinte:
QueryManagermanager=QueryManager.getQueryManager();try{java.sql.PreparedStatementps=manager.getPreparedStatement(principal.get_conexao(),"equip.conta");java.sql.ResultSetrs=ps.executeQuery();Stringconta=rs.getString(0);//indice da coluna "COUNT(*)"CodEquip1.setText(conta);}catch(java.sql.SQLExceptione){System.out.println("Erro SQL:\n");e.printStackTrace();}
Iniciaste o “ponteiro” do ResultSet? Quando você executa a query, ele retorna o ResultSet com o “ponteiro” em null, para começar a ler tens que ler o próximo registro. Portanto o método ResultSet.next() deve ser usado.