import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CadastroPais extends javax.swing.JFrame {
/** Creates new form CadastroPais */
public CadastroPais() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
edtCodigoPais = new javax.swing.JTextField();
edtNomePaís = new javax.swing.JTextField();
btnCadastrar = new javax.swing.JButton();
btnCancelar = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Cadastro do País");
jLabel1.setText("Codigo do País:");
jLabel2.setText("Nome do País:");
edtCodigoPais.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
edtCodigoPaisActionPerformed(evt);
}
});
btnCadastrar.setText("Cadastrar");
btnCadastrar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCadastrarActionPerformed(evt);
}
});
btnCancelar.setText("Cancelar");
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(58, 58, 58)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(edtCodigoPais, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(edtNomePaís, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(122, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(82, Short.MAX_VALUE)
.addComponent(btnCadastrar)
.addGap(54, 54, 54)
.addComponent(btnCancelar)
.addGap(175, 175, 175))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 371, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(86, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(edtCodigoPais, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(edtNomePaís, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnCancelar)
.addComponent(btnCadastrar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>
private void edtCodigoPaisActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:
Conexao con = new Conexao();
con.connect();
Statement stm = con.conn.createStatement();
String incluir;
incluir =("INSERT INTO recibo (Integer CodPais, String NomePais) values (" + "'" +edtCodigoPais + "'," + "'" + edtNomePaís + "')");
stm.executeUpdate(incluir);
} catch (SQLException ex) {
Logger.getLogger(CadastroPais.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new CadastroPais().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnCadastrar;
private javax.swing.JButton btnCancelar;
private javax.swing.JTextField edtCodigoPais;
private javax.swing.JTextField edtNomePaís;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
//CLASSE DE CONEXAO COM MYSQL
[code]
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexao {
//Declarando as variáveis publicas
public String host;
public Connection conn = null;
public boolean status;
// fim da declaração
public Conexao(){
String hosttmp=null;
host=hosttmp;
status=false;
}
public void connect(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection( "jdbc:mysql://localhost/recibo?user=root&password=" );
status=true;
System.out.println("A conexão foi um sucesso");
} catch(ClassNotFoundException e) {
System.out.println("excessão Classe não encontrada");
e.printStackTrace();
} catch(SQLException e) {
System.out.println("SQL Exception... Não conectado");
e.printStackTrace();
}
}
public void disconnect(){
try {
conn.close();
status=false;
System.out.println("Fechando a conexão");
} catch(SQLException erro) {
System.out.println("Erro no fechamento");
//erro.printStackTrace();
}
}
public boolean isconnected(){
return status;
}
Statement createStatement() {
throw new UnsupportedOperationException("Not yet implemented");
}
}
O que tem de errado no meu codigo [resolvido]
15 Respostas
vc deve corrigi sua string sql.
incluir = ("INSERT INTO recibo (Integer CodPais, String NomePais) values (" + "'" + edtCodigoPais + "'," + "'" + edtNomePaís + "')");
deve ser dessa forma.
incluir = ("INSERT INTO recibo (CodPais, NomePais) values (" + "'" + edtCodigoPais + "'," + "'" + edtNomePaís + "')");
Olá,
está faltando você passar a senha na conexão com o banco:
conn = DriverManager.getConnection( "jdbc:mysql://localhost/recibo?user=root&password=" );
deveria ser :
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/recibo?user=root&password=SENHADOBANCO");
onde SENHADOBANCO é a senha do usuário root, neste caso.
Obs.: quando postar código coloque cada um entre as tags Code, que fica mais fácil de ler.
Att.
Melhor ainda seria usar o PreparedStatement. Isso evita a necessidade de concatenação, evita que você tenha que se preocupar com aspas simples (pense que seu usuário poderia escrever “USA’s Alaska”), evita também lidar com formatos específicos de data do banco de dados e evita o ataque de SQL Injection.
PreparedStatement stm = con.conn.prepareStatement("INSERT INTO recibo(CodPais, NomePais) VALUES(?, ?)");
stm.setInt(1, Integer.parseInt(edtCodigoPais.getText()));
stm.setString(2, edtNomePaís.getText());
stm.executeUpdate();
Outra coisa. Para pegar o texto de um JTextField, use o comando getText() como fiz ali em cima.
[size=18]
[b]
fiz tudo certo como vocs mandaram !!
mais, creio eu, que nao esta inserindo o país nem o codigo ainda no Mysql , por mais que a conexao esteja feita
…o Banco fica vazio.
[/b][/size]
SAIDA:
run:
A conexão foi um sucesso
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at CadastroPais.btnCadastrarActionPerformed(CadastroPais.java:132)
at CadastroPais.access$100(CadastroPais.java:8)
at CadastroPais$2.actionPerformed(CadastroPais.java:53)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Está dando um NullPointerException na linha 132… E isso não tem nada a ver com a query ou o banco.
O que tem nessa linha?
PreparedStatement stm = con.conn.prepareStatement("INSERT INTO RECIBO (CodPais, NomePais) VALUES(?, ?)"); // linha 132
stm.setInt(1, Integer.parseInt(edtCodigoPais.getText()));
stm.setString(2, edtNomePaís.getText());
stm.executeUpdate();
con.conn.prepareStatement( ...
Um desses objetos con ou conn pode não ter sido inicializado corretamente…
De uma olhada na minha Classe Conexao:
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexao {
//Declarando as variáveis publicas
public String host;
public Connection conn;
public boolean status;
// fim da declaração
public Conexao(){
String hosttmp=null;
host=hosttmp;
status=false;
}
public void connect(){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/teste?user=root&password=" );
status=true;
System.out.println("A conexão foi um sucesso");
} catch(ClassNotFoundException e) {
System.out.println("excessão Classe não encontrada");
e.printStackTrace();
} catch(SQLException e) {
System.out.println("SQL Exception... Não conectado");
e.printStackTrace();
}
}
public void disconnect(){
try {
conn.close();
status=false;
System.out.println("Fechando a conexão");
} catch(SQLException erro) {
System.out.println("Erro no fechamento");
//erro.printStackTrace();
}
}
public boolean isconnected(){
return status;
}
}
Aqui to consumindo a classe e tentando cadastrar o Pais no Banco:
private void btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
try {
// TODO add your handling code here:
Conexao con = new Conexao();
con.connect();
PreparedStatement stm = con.conn.prepareStatement("INSERT INTO teste(CodPais, NomePais) VALUES(?, ?)");
stm.setInt(1, Integer.parseInt(edtCodigoPais.getText()));
stm.setString(2, edtNomePaís.getText());
stm.executeUpdate();
// con.disconnect();
} catch (SQLException ex) {
Logger.getLogger(CadastroPais.class.getName()).log(Level.SEVERE, null, ex);
}
}
No teu método connect estás a atribuir a tua connection a um novo objecto e não ao da classe.
Essa linha deveria ser conn = DriverManager.getConnection( "jdbc:mysql://localhost/teste?user=root&password=" );
[quote]No teu método connect estás a atribuir a tua connection a um novo objecto e não ao da classe.
Essa linha deveria ser
conn = DriverManager.getConnection( "jdbc:mysql://localhost/teste?user=root&password=" );
AEEEEEEEEE vlw…agora ta rodando de boa!!
Eu tava colocando assim:
Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/teste?user=root&password=" );
Certo eh assim:
conn = DriverManager.getConnection( "jdbc:mysql://localhost/teste?user=root&password=" );
vlw a paciencia. Abraço a todos e até a proxima.
Um dia fico bom nisso !!!

Agora edite seu primeiro post e muda o título do tópico, coloca [resolvido] antes do título 
.
ok
E desinstala o netbeans da sua maquina e instala o eclipse.