olá, estou tentando inserir no oracle exeos dados informados em uma tel pelo usuário através de uma aplicação java, porém está danso o seguinte erro: ora 01400 : não é possível inserir NULL em (“FERNANDA”.“PRODUTOS”.“CODIGO”).
Não sei pq o meu txtCodigo não está recebenco o conteúdo digitado!
//abaixo segue o sql de criação da tabela produtos:
create table produtos(
codigo varchar(5) not null constraint produtos_codigo_pk primary key,
nome varchar(45),
custo number(9,2)
)
//abaixo segue o código:
import javax.swing.<em>;
import java.awt.</em>;
import java.awt.event.<em>;
import java.text.</em>;
import java.sql.*;
public class Produtos extends JFrame {
JLabel lblCadastroProd,lblCodigo,lblNome,lblCusto;
JButton btnGravar,btnSair;
JTextField txtCodigo,txtNome,txtCusto;
public Produtos() {
super("Cadastro de Produtos");
Container Produtos = getContentPane();
setLayout(null);
lblCadastroProd = new JLabel ("Cadastro de Produtos");
lblCodigo = new JLabel ("Código.... :");
lblNome = new JLabel ("Nome...... :");
lblCusto = new JLabel ("Custo..... :");
btnGravar = new JButton ("Gravar");
btnSair = new JButton ("Sair");
txtCodigo = new JTextField(5);
txtNome = new JTextField(45);
txtCusto = new JTextField(12);
Produtos.add(lblCadastroProd);
Produtos.add(lblCodigo);
Produtos.add(lblNome);
Produtos.add(lblCusto);
Produtos.add(btnGravar);
Produtos.add(btnSair);
Produtos.add(txtCodigo);
Produtos.add(txtNome);
Produtos.add(txtCusto);
//coluna,linha, largura, altura
lblCadastroProd.setBounds(20,50,150,20);
lblCodigo.setBounds(20,90,190,20);
lblNome.setBounds(20,110,190,20);
lblCusto.setBounds(20,130,190,20);
btnGravar.setBounds(20,170,100,20);
btnSair.setBounds(150,170,100,20);
txtCodigo.setBounds(80,90,80,20);
txtNome.setBounds(80,110,150,20);
txtCusto.setBounds(80,130,130,20);
Produtos.setBackground(new Color(255,128,128));
setSize(300,300);
setVisible(true);
try {
String url = "jdbc:odbc:xe";
String usuario = "fernanda";
String senha = "oracle";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
st.executeUpdate("INSERT INTO PRODUTOS(CODIGO,NOME,CUSTO) VALUES('"+txtCodigo.getText()+"','"+txtNome.getText()+"','"+txtCusto.getText()+"')");
System.out.println("Registro incluído com sucesso.");
st.close();
con.close();
}
catch(java.lang.Exception e)
{
System.out.println(e);
}
}
public static void main(String args[]){
Produtos app=new Produtos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Valeu !!! Fernanda.
